An open index of dependabot pull requests across open source projects.

fast-uri vulnerable to host confusion via unchecked WHATWG host canonicalization

RSS Feed MODERATE
GHSA-wjr9-j795-jxcr CVE-2026-110180
Description:

Impact

fast-uri versions >= 2.4.2, <= 2.4.7, >= 3.1.3, <= 3.1.8, and >= 4.0.1, <= 4.2.2 can silently rewrite the host of an HTTP-family URL (http, https, ws, wss, or any scheme with domainHost: true). For those schemes canonicalizeHost() passes the parsed host to the WHATWG URL parser and adopts its .hostname without checking that the parser read the whole input as a host. RFC 3986 permits @ inside the host group and the WHATWG parser strips TAB, LF, and CR, so the authority fast-uri reports is rewritten by that second parser with no error set: data before an @ is dropped and whitespace is removed.

For example, fast-uri parses http://a@b@evil.example/ to host evil.example (dropping the b segment), and a host containing a raw TAB, CR, or LF has those characters stripped. equal() then treats a whitespace-smuggled host as the same as the clean one, and resolve() rewrites the authority the same way.

Applications that use fast-uri to enforce host-based policy (denylists, loopback filtering, redirect validation, outbound proxy routing) on one representation, such as the raw input, see a policy/use desync: the canonical host fast-uri returns differs from what was checked, and traffic can be steered to an unintended destination.

Patches

Upgrade to fast-uri 2.4.8, 3.1.9, or 4.2.3.

Workarounds

Reject URIs whose authority contains more than one @, or contains TAB, CR, or LF, before calling fast-uri. Alternatively, treat any non-empty parse(x).error as fatal, and compare hosts only from the same parse() result.

Affected Packages
Ecosystem Package Vulnerable Versions Patched Version
npm fast-uri >= 4.0.1, < 4.2.3
>= 3.1.3, < 3.1.9
>= 2.4.2, < 2.4.8
4.2.3
Advisory Details
Published: October 23, 2026 about 18 hours ago
Updated: October 24, 2026 about 15 hours ago
CVSS Score: 4.8 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
EPSS: 0.21% 10th percentile
Source: Github
Classification: GENERAL
UUID: GSA_kwCzR0hTQS13anI5LWo3OTUtanhjcs4AB_RI
PR Statistics
PR Status
Open 4 (44.4%)
Merged 0 (0.0%)
Closed 5 (55.6%)
Update Types
Major 2 (10.0%)
Minor 2 (10.0%)
Patch 16 (80.0%)