CVE-2026-110095
Low · 3.7CVSS
3.7
EPSS
0.3%
Published
Oct 20, 2026
CISA due date
—
Cloudanix analysis
A helper library that processes web addresses inside Node.js programs can be tricked into letting references point to the wrong place, which might let attackers reach files or data they should not.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- High
- Impact
- Data Tampering
- Component
- Library
- Class
- Path Traversal
- Remediation
- Upgrade
- Effort
- Low
- Patch risk
- Low
What it actually does
The normalize() and serialize() functions incorrectly apply RFC 3986 dot-segment removal to relative-path references, allowing a leading '../' segment to be dropped so that a document-relative reference becomes root-relative and can escape its intended directory scope when later resolved or used as a cache/deduplication/authorization key.
Why it matters to the business
Applications that normalize attacker- or user-supplied relative references before resolution or use them for access decisions may grant unintended access to different resources, increasing risk of unauthorized data exposure or authorization bypass; low urgency given no KEV listing and modest EPSS score with only slight recent increase.
How an attack unfolds
An attacker supplies a crafted relative reference containing leading parent-directory segments to an application endpoint that passes it to fast-uri normalize() or serialize(); the flawed dot-segment removal drops the leading '../', converting the reference into a root-relative path; the resulting value is then used for caching, deduplication, or authorization, allowing the attacker to reach a resource outside the intended directory.
How to fix it
Upgrade fast-uri to version 2.4.8, 3.1.9, or 4.2.3 or later. If immediate upgrade is not possible, resolve the relative reference against its absolute base URI first and normalize only the absolute result.
How to confirm the fix worked
Verify the installed fast-uri version in package.json or node_modules meets or exceeds 2.4.8 / 3.1.9 / 4.2.3; test that normalize() on a relative reference such as '../secret' no longer strips the leading segment when the reference is later resolved against a base.
Typical attack path
- Identify application code paths that accept relative URI references and pass them to fast-uri normalize() or serialize()
- Craft a relative reference beginning with '../' that targets a resource outside the intended scope
- Submit the reference so that normalization occurs before absolute resolution or key usage
- Observe or leverage the resulting root-relative reference to access unauthorized resources
How to detect it
Review application source and dependency trees for use of fast-uri normalize or serialize on user-controlled relative references; inspect logs or audit trails for unexpected root-relative URIs appearing after normalization of relative inputs.
What your security team should do
- Upgrade fast-uri to a fixed version (2.4.8, 3.1.9, or 4.2.3) across all Node.js projects
- Audit application code for direct calls to normalize() or serialize() on untrusted relative references and apply the absolute-resolution workaround where upgrade is delayed
- Add dependency scanning to CI pipelines to prevent future vulnerable fast-uri versions from being introduced
The record
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 packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-119200 Nuxt is an open-source web development framework for Vue.js. CWE-41
- CVE-2026-112343 Syncplify Server! CWE-41
- CVE-2026-110725 fast-uri is a dependency-free RFC 3986 URI parser and serializer for Node.js. CWE-41
- CVE-2026-70184 Improper resolution of path equivalence in Windows Backup Engine allows an authorized… CWE-41
- CVE-2026-102231 Improper resolution of path equivalence in Visual Studio Code allows an unauthorized… CWE-41
- CVE-2026-85978 An unauthenticated remote code execution vulnerability exists in the Policy Manager… CWE-41
- CVE-2026-72835 filebrowser versions before v2.63.21 fail to canonicalize paths before evaluating access… CWE-41
- CVE-2026-66064 goshs is a feature-rich single-binary file server for red teamers and developers. CWE-41