Repository navigation
v0.31.13
Security
A default self-hosted install is not affected and nothing changes for it. This matters if one gateway serves several organizations through a shared runner pool.
- An upload destination's address is checked before the server calls it. Adding or testing a cloud-upload destination makes the server call that destination to learn which workspace a key belongs to, and an upload calls it again. Neither call checked the address, so anyone holding an API key could make the server request a private, local or cloud-metadata address and read back whether it answered. On a shared deployment the address must now be https and must not resolve to a private, local or metadata network, the rule MCP server, database and git addresses already follow. A destination stored before this release is checked again before every upload. A self-hosted box's own network stays allowed, as it does for those other addresses.
Checked
On the release candidate, run once as a self-hosted install and once as a shared deployment. Self-hosted: a destination on the box's own network and a public one are still called, a non-web address is refused, and a Claude Code task completes. Shared: plain http, loopback, localhost, link-local (cloud metadata) and private addresses are refused before any call, and a public https destination is still called. The refusal, including for a destination stored earlier, is pinned by tests.
Reported privately by @mikannse (GHSA-c5g7-c47h-f6c3). Thank you.
docker run -d -p 3000:3000 -v hr-data:/data harnessrouter/harnessrouter:0.31.13
Full Changelog: v0.31.12...v0.31.13