CVE-2026-110095: fast-uri vulnerable to improper path equivalence in relative reference normalization
fast-uri is a dependency-free RFC 3986 URI parser and serializer for Node.js. In versions before 2.4.8, from 3.0.0 through 3.1.8, and from 4.0.0 through 4.2.2, the normalize() and serialize() functions apply RFC 3986 dot-segment removal to the path of a relative-path reference, even though that algorithm is defined only for the merged target path during resolution, so a leading parent-directory segment can be dropped and a document-relative reference can become root-relative. An application that normalizes an attacker-supplied or user-supplied relative reference and then resolves it, or uses it as a cache, deduplication, or authorization key, can have the reference escape its intended directory and point at a different resource. 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, resolve a relative reference against its absolute base first and normalize the absolute result instead of normalizing the reference beforehand.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
fast-urito a version that resolves this vulnerability.Fixed in 2.4.8 - Upgrade
Upgrade
fast-urito a version that resolves this vulnerability.Fixed in 3.1.9 - Upgrade
Upgrade
fast-urito a version that resolves this vulnerability.Fixed in 4.2.3
Event History
Frequently Asked Questions
Which applications are exposed to this issue?
Applications are exposed if they normalize an attacker-supplied or user-supplied relative URI reference before resolving it, or if they use that normalized reference as a cache, deduplication, or authorization key. The impact is that a document-relative reference may escape its intended directory and refer to a different resource.
Is an attacker required to authenticate or interact with a user to exploit this?
No authentication or user interaction is required according to the provided vector. Exploitation requires an attacker-controlled or user-controlled relative reference to reach the affected normalization or serialization flow, and the attack complexity is high.
What should be done if an immediate upgrade is not possible?
Resolve the relative reference against its absolute base first, then normalize the resulting absolute URI. Do not normalize the relative reference before resolution.
How can I determine whether a deployed version is affected?
Affected versions are versions before 2.4.8, versions from 3.0.0 through 3.1.8, and versions from 4.0.0 through 4.2.2. Fixed versions are 2.4.8, 3.1.9, and 4.2.3 or later.