fast-uri v3.1.1 and earlier decodes percent-encoded authority delimiters (%40 as @, %3A as :) inside the host component and serializes them back as raw characters. This changes the URI structure, turning a hostname into userinfo plus a different host.
For example, http://trusted.com%40evil.com/ normalizes to http://trusted.com@evil.com/, which reparses as host evil.com with userinfo trusted.com.
Applications that normalize untrusted URLs before host allowlist checks, redirect validation, or outbound request routing can be steered to a different authority than the original URL appeared to contain.
Upgrade to fast-uri >= 3.1.2.
None. Upgrade to the patched version.
{
"github_reviewed": true,
"github_reviewed_at": "2026-05-08T19:13:01Z",
"cwe_ids": [
"CWE-436"
],
"severity": "HIGH",
"nvd_published_at": "2026-05-05T11:16:33Z"
}