fast-uri canonicalizes a host to its ASCII form only when the input carries an explicit scheme. When resolve() resolves a scheme-relative reference (//host/) against a scheme-bearing base, it still emits the host verbatim even though the effective scheme is known, so re-parsing the resolved URI yields a different host than the one resolve() returned. An application that resolves an untrusted reference with fast-uri and then checks or routes on the resulting host can make a policy decision on one host and reach another. This is an incomplete-fix variant of CVE-2026-13676, whose IDN canonicalization was applied only to the scheme-bearing form.
Upgrade to fast-uri 2.4.5, 3.1.6, or 4.1.3. resolve() now canonicalizes the host once the effective scheme is known, and fails closed if a raw non-ASCII host cannot be converted.
Resolve scheme-relative references against a base that carries a scheme before performing any host-policy or origin check.
{
"nvd_published_at": "2026-08-24T10:16:40Z",
"github_reviewed_at": "2026-09-02T15:44:30Z",
"severity": "HIGH",
"github_reviewed": true,
"cwe_ids": [
"CWE-436"
]
}