p PatchFirst

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

Stack: system · node

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

Original sources

Check your server →