Every CVE Search/ Get API key

CVE-2026-110180

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

4.8 MediumFix available

fast-uri is a dependency-free RFC 3986 URI parser and serializer for Node.js. In versions from 2.4.2 through 2.4.7, from 3.1.3 through 3.1.8, and from 4.0.1 through 4.2.2, for HTTP-family schemes the canonicalizeHost() function passes the parsed host to the WHATWG URL parser and adopts its hostname without checking that the parser consumed the entire input as a host, so the authority can be silently rewritten: data before an at-sign is dropped and tab, carriage-return, and line-feed characters are stripped, with no error reported. An application that enforces host-based policy such as denylists, loopback filtering, redirect validation, or outbound proxy routing on one representation can then see the canonical host diverge from what it checked, allowing traffic to be steered to an unintended destination. The issue is fixed in fast-uri 2.4.8, 3.1.9, and 4.2.3, and users should upgrade to one of these versions or later. As a workaround, reject an authority that contains more than one at-sign or any tab, carriage-return, or line-feed before calling fast-uri, or treat any non-empty parse error as fatal and compare hosts only from the same parse result.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
High
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
Low
Integrity
Low
Availability
None

Exploit likelihood

0.26%Unchanged since Oct 20, 2026
90%50%10%1%

What each source reports

CVE List Score used 4.8

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

fast-uri is a dependency-free RFC 3986 URI parser and serializer for Node.js. In versions from 2.4.2 through 2.4.7, from 3.1.3 through 3.1.8, and from 4.0.1 through 4.2.2, for HTTP-family schemes the canonicalizeHost() function passes the parsed host to the WHATWG URL parser and adopts its hostname without checking that the parser consumed the entire input as a host, so the authority can be silently rewritten: data before an at-sign is dropped and tab, carriage-return, and line-feed characters are stripped, with no error reported. An application that enforces host-based policy such as denylists, loopback filtering, redirect validation, or outbound proxy routing on one representation can then see the canonical host diverge from what it checked, allowing traffic to be steered to an unintended destination. The issue is fixed in fast-uri 2.4.8, 3.1.9, and 4.2.3, and users should upgrade to one of these versions or later. As a workaround, reject an authority that contains more than one at-sign or any tab, carriage-return, or line-feed before calling fast-uri, or treat any non-empty parse error as fatal and compare hosts only from the same parse result.

Record
CVE-2026-110180
CVSS 3.1
4.8 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Weakness
CWE-20, CWE-436
Updated
2026-11-02
EUVDEUVD-2026-104813 4.8

fast-uri is a dependency-free RFC 3986 URI parser and serializer for Node.js. In versions from 2.4.2 through 2.4.7, from 3.1.3 through 3.1.8, and from 4.0.1 through 4.2.2, for HTTP-family schemes the canonicalizeHost() function passes the parsed host to the WHATWG URL parser and adopts its hostname without checking that the parser consumed the entire input as a host, so the authority can be silently rewritten: data before an at-sign is dropped and tab, carriage-return, and line-feed characters are stripped, with no error reported. An application that enforces host-based policy such as denylists, loopback filtering, redirect validation, or outbound proxy routing on one representation can then see the canonical host diverge from what it checked, allowing traffic to be steered to an unintended destination. The issue is fixed in fast-uri 2.4.8, 3.1.9, and 4.2.3, and users should upgrade to one of these versions or later. As a workaround, reject an authority that contains more than one at-sign or any tab, carriage-return, or line-feed before calling fast-uri, or treat any non-empty parse error as fatal and compare hosts only from the same parse result.

Record
EUVD-2026-104813
CVSS 3.1
4.8 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-wjr9-j795-jxcr 4.8

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

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@[email protected]/ 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.

Record
GHSA-wjr9-j795-jxcr
CVSS 3.1
4.8 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Weakness
CWE-20, CWE-436
Updated
2026-11-02
NVD 4.8

fast-uri is a dependency-free RFC 3986 URI parser and serializer for Node.js. In versions from 2.4.2 through 2.4.7, from 3.1.3 through 3.1.8, and from 4.0.1 through 4.2.2, for HTTP-family schemes the canonicalizeHost() function passes the parsed host to the WHATWG URL parser and adopts its hostname without checking that the parser consumed the entire input as a host, so the authority can be silently rewritten: data before an at-sign is dropped and tab, carriage-return, and line-feed characters are stripped, with no error reported. An application that enforces host-based policy such as denylists, loopback filtering, redirect validation, or outbound proxy routing on one representation can then see the canonical host diverge from what it checked, allowing traffic to be steered to an unintended destination. The issue is fixed in fast-uri 2.4.8, 3.1.9, and 4.2.3, and users should upgrade to one of these versions or later. As a workaround, reject an authority that contains more than one at-sign or any tab, carriage-return, or line-feed before calling fast-uri, or treat any non-empty parse error as fatal and compare hosts only from the same parse result.

Record
CVE-2026-110180
CVSS 3.1
4.8 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Weakness
CWE-20, CWE-436
Updated
2026-11-02
OSV 4.8

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

fast-uri is a dependency-free RFC 3986 URI parser and serializer for Node.js. In versions from 2.4.2 through 2.4.7, from 3.1.3 through 3.1.8, and from 4.0.1 through 4.2.2, for HTTP-family schemes the canonicalizeHost() function passes the parsed host to the WHATWG URL parser and adopts its hostname without checking that the parser consumed the entire input as a host, so the authority can be silently rewritten: data before an at-sign is dropped and tab, carriage-return, and line-feed characters are stripped, with no error reported. An application that enforces host-based policy such as denylists, loopback filtering, redirect validation, or outbound proxy routing on one representation can then see the canonical host diverge from what it checked, allowing traffic to be steered to an unintended destination. The issue is fixed in fast-uri 2.4.8, 3.1.9, and 4.2.3, and users should upgrade to one of these versions or later. As a workaround, reject an authority that contains more than one at-sign or any tab, carriage-return, or line-feed before calling fast-uri, or treat any non-empty parse error as fatal and compare hosts only from the same parse result.

Record
CVE-2026-110180
CVSS 3.1
4.8 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Weakness
CWE-20, CWE-436
Updated
2026-11-02
OSVDEBIAN-CVE-2026-110180 4.8

fast-uri is a dependency-free RFC 3986 URI parser and serializer for Node.js. In versions from 2.4.2 through 2.4.7, from 3.1.3 through 3.1.8, and from 4.0.1 through 4.2.2, for HTTP-family schemes the canonicalizeHost() function passes the parsed host to the WHATWG URL parser and adopts its hostname without checking that the parser consumed the entire input as a host, so the authority can be silently rewritten: data before an at-sign is dropped and tab, carriage-return, and line-feed characters are stripped, with no error reported. An application that enforces host-based policy such as denylists, loopback filtering, redirect validation, or outbound proxy routing on one representation can then see the canonical host diverge from what it checked, allowing traffic to be steered to an unintended destination. The issue is fixed in fast-uri 2.4.8, 3.1.9, and 4.2.3, and users should upgrade to one of these versions or later. As a workaround, reject an authority that contains more than one at-sign or any tab, carriage-return, or line-feed before calling fast-uri, or treat any non-empty parse error as fatal and compare hosts only from the same parse result.

Record
DEBIAN-CVE-2026-110180
CVSS 3.1
4.8 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Updated
2026-11-02
Show 13 moreShow less
OSVGHSA-wjr9-j795-jxcr 4.8

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

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@[email protected]/ 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.

Record
GHSA-wjr9-j795-jxcr
CVSS 3.1
4.8 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Weakness
CWE-20, CWE-436
Updated
2026-11-02
OSVUBUNTU-CVE-2026-110180 4.8

fast-uri is a dependency-free RFC 3986 URI parser and serializer for Node.js. In versions from 2.4.2 through 2.4.7, from 3.1.3 through 3.1.8, and from 4.0.1 through 4.2.2, for HTTP-family schemes the canonicalizeHost() function passes the parsed host to the WHATWG URL parser and adopts its hostname without checking that the parser consumed the entire input as a host, so the authority can be silently rewritten: data before an at-sign is dropped and tab, carriage-return, and line-feed characters are stripped, with no error reported. An application that enforces host-based policy such as denylists, loopback filtering, redirect validation, or outbound proxy routing on one representation can then see the canonical host diverge from what it checked, allowing traffic to be steered to an unintended destination. The issue is fixed in fast-uri 2.4.8, 3.1.9, and 4.2.3, and users should upgrade to one of these versions or later. As a workaround, reject an authority that contains more than one at-sign or any tab, carriage-return, or line-feed before calling fast-uri, or treat any non-empty parse error as fatal and compare hosts only from the same parse result.

Record
UBUNTU-CVE-2026-110180
CVSS 3.1
4.8 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Updated
2026-11-02
OSVCLSA-2026-1792486192 No score

TuxCare security update for fast-uri (1 CVE)

TuxCare rebuilt fast-uri to address 1 CVE. Fixed in 2.4.7-tuxcare.1.

Record
CLSA-2026-1792486192
Updated
2026-11-02
OSVCLSA-2026-1792486604 No score

TuxCare security update for fast-uri (3 CVEs)

TuxCare rebuilt fast-uri to address 3 CVEs. Fixed in 3.1.8-tuxcare.1.

Record
CLSA-2026-1792486604
Updated
2026-11-02
OSVCLSA-2026-1792495280 No score

TuxCare security update for fast-uri (1 CVE)

TuxCare rebuilt fast-uri to address 1 CVE. Fixed in 2.4.5-tuxcare.4.

Record
CLSA-2026-1792495280
Updated
2026-11-02
OSVCLSA-2026-1793097055 No score

TuxCare security update for fast-uri (1 CVE)

TuxCare rebuilt fast-uri to address 1 CVE. Fixed in 3.1.5-tuxcare.6.

Record
CLSA-2026-1793097055
Updated
2026-11-02
OSVCLSA-2026-1793097300 No score

TuxCare security update for fast-uri (1 CVE)

TuxCare rebuilt fast-uri to address 1 CVE. Fixed in 2.4.3-tuxcare.5.

Record
CLSA-2026-1793097300
Updated
2026-11-02
OSVCLSA-2026-1793099989 No score

TuxCare security update for fast-uri (3 CVEs)

TuxCare rebuilt fast-uri to address 3 CVEs. Fixed in 3.1.3-tuxcare.8.

Record
CLSA-2026-1793099989
Updated
2026-11-02
OSVCLSA-2026-1793100044 No score

TuxCare security update for fast-uri (1 CVE)

TuxCare rebuilt fast-uri to address 1 CVE. Fixed in 3.1.6-tuxcare.4.

Record
CLSA-2026-1793100044
Updated
2026-11-02
OSVCLSA-2026-1793100671 No score

TuxCare security update for fast-uri (3 CVEs)

TuxCare rebuilt fast-uri to address 3 CVEs. Fixed in 3.1.4-tuxcare.6.

Record
CLSA-2026-1793100671
Updated
2026-11-02
OSVCLSA-2026-1793110570 No score

TuxCare security update for fast-uri (1 CVE)

TuxCare rebuilt fast-uri to address 1 CVE. Fixed in 3.1.7-tuxcare.3.

Record
CLSA-2026-1793110570
Updated
2026-11-02
OSVCLSA-2026-1793125156 No score

TuxCare security update for fast-uri (4 CVEs)

TuxCare rebuilt fast-uri to address 4 CVEs. Fixed in 2.4.2-tuxcare.5.

Record
CLSA-2026-1793125156
Updated
2026-11-02
OSVopenSUSE-SU-2026:12261-1 No score

git-bug-0.11.0-3.1 on GA media

These are all security issues fixed in the git-bug-0.11.0-3.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:12261-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
fast-uri
npm
2.4.2 up to 2.4.8
2.4.8
fast-uri
npm
3.1.3 up to 3.1.9
3.1.9
fast-uri
npm
4.0.1 up to 4.2.3
4.2.3
fast-uri
TuxCare:npm
2.4.7-tuxcare.0 up to 2.4.7-tuxcare.1, plus listed versions
2.4.7
2.4.7-tuxcare.1
fast-uri
TuxCare:npm
From an advisory covering 3 CVEs
3.1.8-tuxcare.0 up to 3.1.8-tuxcare.1, plus listed versions
3.1.8
3.1.8-tuxcare.1
fast-uri
TuxCare:npm
2.4.5-tuxcare.0 up to 2.4.5-tuxcare.4, plus listed versions
2.4.52.4.5-tuxcare.12.4.5-tuxcare.22.4.5-tuxcare.3
2.4.5-tuxcare.4
fast-uri
TuxCare:npm
3.1.5-tuxcare.0 up to 3.1.5-tuxcare.6, plus listed versions
3.1.53.1.5-tuxcare.13.1.5-tuxcare.23.1.5-tuxcare.33.1.5-tuxcare.43.1.5-tuxcare.5
3.1.5-tuxcare.6
fast-uri
TuxCare:npm
2.4.3-tuxcare.0 up to 2.4.3-tuxcare.5, plus listed versions
2.4.32.4.3-tuxcare.12.4.3-tuxcare.22.4.3-tuxcare.32.4.3-tuxcare.4
2.4.3-tuxcare.5
fast-uri
TuxCare:npm
From an advisory covering 3 CVEs
3.1.3-tuxcare.0 up to 3.1.3-tuxcare.8, plus listed versions
3.1.33.1.3-tuxcare.13.1.3-tuxcare.23.1.3-tuxcare.33.1.3-tuxcare.43.1.3-tuxcare.53.1.3-tuxcare.63.1.3-tuxcare.7
3.1.3-tuxcare.8
fast-uri
TuxCare:npm
3.1.6-tuxcare.0 up to 3.1.6-tuxcare.4, plus listed versions
3.1.63.1.6-tuxcare.13.1.6-tuxcare.23.1.6-tuxcare.3
3.1.6-tuxcare.4
Show 13 moreShow less
Affected packages
PackageAffectedFixed
fast-uri
TuxCare:npm
From an advisory covering 3 CVEs
3.1.4-tuxcare.0 up to 3.1.4-tuxcare.6, plus listed versions
3.1.43.1.4-tuxcare.13.1.4-tuxcare.23.1.4-tuxcare.33.1.4-tuxcare.43.1.4-tuxcare.5
3.1.4-tuxcare.6
fast-uri
TuxCare:npm
3.1.7-tuxcare.0 up to 3.1.7-tuxcare.3, plus listed versions
3.1.73.1.7-tuxcare.13.1.7-tuxcare.2
3.1.7-tuxcare.3
fast-uri
TuxCare:npm
From an advisory covering 4 CVEs
2.4.2-tuxcare.0 up to 2.4.2-tuxcare.5, plus listed versions
2.4.22.4.2-tuxcare.12.4.2-tuxcare.22.4.2-tuxcare.32.4.2-tuxcare.4
2.4.2-tuxcare.5
node-ajv
Debian:12
All versions, plus listed versions
6.12.6-38.11.2~ds+~2.1.1-18.12.0~ds+~2.1.1-18.12.0~ds+~2.1.1-28.12.0~ds+~2.1.1-3
Show 19 moreShow less
8.12.0~ds+~2.1.1-48.12.0~ds+~2.1.1-58.17.1~ds+~3.0.1+~3.1.0-18.17.1~ds+~3.0.1+~3.1.0-28.17.1~ds+~3.0.1+~3.1.0-38.17.1~ds+~3.0.1+~3.1.0-48.18.0~ds+~cs6.1.1-18.18.0~ds+~cs6.1.1-28.20.0~ds+~cs6.1.3-18.20.0~ds+~cs7.1.2-18.20.0~ds+~cs7.1.3-18.20.0~ds+~cs7.1.3-28.20.0~ds+~cs7.1.3-38.20.0~ds+~cs7.1.4-18.20.0~ds+~cs7.1.5-18.20.0~ds+~cs7.1.6-18.20.0~ds+~cs7.1.6-28.20.0~ds+~cs7.2.4-18.8.2~ds+~2.1.1-1
None known
node-ajv
Debian:13
All versions, plus listed versions
8.12.0~ds+~2.1.1-58.17.1~ds+~3.0.1+~3.1.0-18.17.1~ds+~3.0.1+~3.1.0-28.17.1~ds+~3.0.1+~3.1.0-38.17.1~ds+~3.0.1+~3.1.0-4
Show 12 moreShow less
8.18.0~ds+~cs6.1.1-18.18.0~ds+~cs6.1.1-28.20.0~ds+~cs6.1.3-18.20.0~ds+~cs7.1.2-18.20.0~ds+~cs7.1.3-18.20.0~ds+~cs7.1.3-28.20.0~ds+~cs7.1.3-38.20.0~ds+~cs7.1.4-18.20.0~ds+~cs7.1.5-18.20.0~ds+~cs7.1.6-18.20.0~ds+~cs7.1.6-28.20.0~ds+~cs7.2.4-1
None known
node-ajv
Debian:14
before 8.20.0~ds+~cs7.2.4-1, plus listed versions
8.12.0~ds+~2.1.1-58.17.1~ds+~3.0.1+~3.1.0-18.17.1~ds+~3.0.1+~3.1.0-28.17.1~ds+~3.0.1+~3.1.0-38.17.1~ds+~3.0.1+~3.1.0-4
Show 11 moreShow less
8.18.0~ds+~cs6.1.1-18.18.0~ds+~cs6.1.1-28.20.0~ds+~cs6.1.3-18.20.0~ds+~cs7.1.2-18.20.0~ds+~cs7.1.3-18.20.0~ds+~cs7.1.3-28.20.0~ds+~cs7.1.3-38.20.0~ds+~cs7.1.4-18.20.0~ds+~cs7.1.5-18.20.0~ds+~cs7.1.6-18.20.0~ds+~cs7.1.6-2
8.20.0~ds+~cs7.2.4-1
node-ajv
Ubuntu:18.04:LTS
All versions, plus listed versions
5.0.0-1
None known
node-ajv
Ubuntu:20.04:LTS
All versions, plus listed versions
6.10.2-1
None known
node-ajv
Ubuntu:22.04:LTS
All versions, plus listed versions
6.12.6-26.12.6-3
None known
node-ajv
Ubuntu:24.04:LTS
All versions, plus listed versions
6.12.6-38.12.0~ds+~2.1.1-4
None known
node-ajv
Ubuntu:26.10
All versions, plus listed versions
8.17.1~ds+~3.0.1+~3.1.0-4build18.20.0~ds+~cs6.1.3-18.20.0~ds+~cs7.1.2-18.20.0~ds+~cs7.1.3-18.20.0~ds+~cs7.1.3-3
None known
node-ajv
Ubuntu:26.04:LTS
All versions, plus listed versions
8.12.0~ds+~2.1.1-58.17.1~ds+~3.0.1+~3.1.0-28.17.1~ds+~3.0.1+~3.1.0-4build1
None known
git-bug
openSUSE:Tumbleweed
From an advisory covering 13 CVEs
before 0.11.0-3.1
0.11.0-3.1

History

History
RecordedChangedSources
affected, facts
affected, aliases, references
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-110180 is a medium vulnerability (CVSS 4.8) in Fast-uri, published October 20, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.26%, the 17th percentile. Fixed in fast-uri 2.4.8.

References

Show 22 moreShow less
MoveEnter Open