CVE-2026-84394
CVE-2026-84394 · fast-uri vulnerable to host confusion via an unclosed bracket in the URI authority
This page contains facts from public vulnerability sources. Check the original advisory before updating.
fast-uri accepts a host that contains an unbalanced or misplaced authority bracket without reporting an error. A host that starts with an opening bracket but does not end with a closing bracket is neither validated as an IP literal nor canonicalized as a domain name, so parse() returns it as the host with error undefined, while Node's URL and the HTTP clients built on it resolve the same string to a different host. An application that reads the parsed host to make a host decision, such as an SSRF denylist, a redirect allowlist, or proxy routing, and then passes the original URL to an HTTP client evaluates its policy against a string that is not the host the request reaches. The same host is carried through normalize, equal, and resolve. This affects fast-uri versions 2.4.5, 3.1.6, and 4.1.3, and is fixed in 2.4.6, 3.1.7, and 4.1.4, where parse() reports a malformed host for any host that contains a bracket but is not a valid IPv6 literal.
CVSS 7.5 · High · EPSS 0.4% · Fix available
- Published
- Updated
Affected products and versions
fast-uri
- Versions
- ≥ 2.4.5, < 2.4.6: Affected (semver)
- 2.4.6: Not affected (semver)
- ≥ 3.1.6, < 3.1.7: Affected (semver)
- 3.1.7: Not affected (semver)
- ≥ 4.1.3, < 4.1.4: Affected (semver)
- 4.1.4: Not affected (semver)
Update to 2.4.6; Update to 3.1.7; Update to 4.1.4
node-ajv Debian:13
- Versions
- 8.12.0~ds+~2.1.1-5
- 8.17.1~ds+~3.0.1+~3.1.0-1
- 8.17.1~ds+~3.0.1+~3.1.0-2
- 8.17.1~ds+~3.0.1+~3.1.0-3
- 8.17.1~ds+~3.0.1+~3.1.0-4
- 8.18.0~ds+~cs6.1.1-1
- 8.18.0~ds+~cs6.1.1-2
- 8.20.0~ds+~cs6.1.3-1
- 8.20.0~ds+~cs7.1.2-1
- 8.20.0~ds+~cs7.1.3-1
- 8.20.0~ds+~cs7.1.3-2
- 8.20.0~ds+~cs7.1.3-3
- 8.20.0~ds+~cs7.1.4-1
- 8.20.0~ds+~cs7.1.5-1
- 8.20.0~ds+~cs7.1.6-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
node-ajv Debian:14
- Versions
- 8.12.0~ds+~2.1.1-5
- 8.17.1~ds+~3.0.1+~3.1.0-1
- 8.17.1~ds+~3.0.1+~3.1.0-2
- 8.17.1~ds+~3.0.1+~3.1.0-3
- 8.17.1~ds+~3.0.1+~3.1.0-4
- 8.18.0~ds+~cs6.1.1-1
- 8.18.0~ds+~cs6.1.1-2
- 8.20.0~ds+~cs6.1.3-1
- 8.20.0~ds+~cs7.1.2-1
- 8.20.0~ds+~cs7.1.3-1
- 8.20.0~ds+~cs7.1.3-2
- 8.20.0~ds+~cs7.1.3-3
- 8.20.0~ds+~cs7.1.4-1
- Affected ranges
- ECOSYSTEM: < 8.20.0~ds+~cs7.1.5-1
Update to 8.20.0~ds+~cs7.1.5-1
fast-uri npm
- Versions
- 2.4.5
- Affected ranges
- SEMVER: ≥ 2.4.5, < 2.4.6
Update to 2.4.6
fast-uri npm
- Versions
- 3.1.6
- Affected ranges
- SEMVER: ≥ 3.1.6, < 3.1.7
Update to 3.1.7
fast-uri npm
- Versions
- 4.1.3
- Affected ranges
- SEMVER: ≥ 4.1.3, < 4.1.4
Update to 4.1.4
node-ajv Ubuntu:18.04:LTS
- Versions
- 5.0.0-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
node-ajv Ubuntu:20.04:LTS
- Versions
- 6.10.2-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
node-ajv Ubuntu:22.04:LTS
- Versions
- 6.12.6-2
- 6.12.6-3
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
node-ajv Ubuntu:24.04:LTS
- Versions
- 6.12.6-3
- 8.12.0~ds+~2.1.1-4
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
node-ajv Ubuntu:26.10
- Versions
- 8.17.1~ds+~3.0.1+~3.1.0-4build1
- 8.20.0~ds+~cs6.1.3-1
- 8.20.0~ds+~cs7.1.2-1
- 8.20.0~ds+~cs7.1.3-1
- 8.20.0~ds+~cs7.1.3-3
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
node-ajv Ubuntu:26.04:LTS
- Versions
- 8.12.0~ds+~2.1.1-5
- 8.17.1~ds+~3.0.1+~3.1.0-2
- 8.17.1~ds+~3.0.1+~3.1.0-4build1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published