GitHub Repo
Hermes Agent Patches Native Login Redirect Vulnerability; URL Parsing Differences Could Lead to Session Takeover
Tenable disclosed a Hermes Agent native login vulnerability on October 9: differences in how the server and browser parse callback URLs could allow authorization codes to be sent to an attacker. The fix is included in v0.21.6, but the Desktop, Termux, and Microsoft Store packages were not updated alongside this release.

On October 9, Tenable published a security advisory identifying a redirect validation vulnerability in Hermes Agent’s native application login flow. The affected products are versions earlier than 0.21.6. An attacker could exploit differences in URL parsing to obtain an authorization code after a user completes login, then exchange it for an account token. The advisory rates the risk High and recommends upgrading to 0.21.6 or later. Tenable advisory
The issue is in the public endpoint GET /auth/native/authorize: the server uses Python’s urllib.parse.urlparse to check redirect_uri, and after confirming that the host appears to be a loopback address, it stores the original, unnormalized string. Browsers handle backslashes differently under the WHATWG URL parsing rules, so the two sides may identify different destination hosts. An attacker can also specify their own PKCE challenge, then redeem an authorization code after it is leaked. This means PKCE protection still depends on correct callback URL validation; enabling the protocol alone cannot ensure login security. Vulnerability analysis
The upstream fix rejects backslashes, user information fields, non-ASCII characters, control characters, and fragment identifiers. It also requires the URL authority to use the standard form 127.0.0.1[:port] or [::1][:port]. The login flow now stores the normalized URI. The fix proposal reports that 72 tests passed, including boundary cases verifying rejection of malicious input and the complete flow for a valid callback, from authorization through token exchange. These are validation results reported by the submitter. Fix PR
Deployment teams should note the release coverage. The v0.21.6 release published on October 8 is available as a Git tag, GitHub release, and Docker image; Desktop, Termux, and Microsoft Store remain on their existing builds. Engineering teams should verify the version of the backend actually running the login service and test whether custom clients’ callback formats meet the new restrictions. The advisory provides no evidence of exploitation in the wild; teams should continue tracking package availability and reports of login compatibility issues. Release notes