Skip to main content

fast-uri CVE-2026-110725

| EUVDEUVD-2026-104807 LOW
Improper Resolution of Path Equivalence (CWE-41)
2026-10-20 ce714d77-add3-4f53-aff5-83d477b104bb GHSA-333x-w4r6-6crp
3.7
CVSS 3.1 · Vendor: ce714d77-add3-4f53-aff5-83d477b104bb
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Submit crafted relative reference with bare colon
  2. Delivery
    App serializes with suffix option
  3. Exploit
    Output reparses as scheme-bearing URI
  4. Execution
    Rendered as javascript/data URL
  5. Impact
    Cross-site scripting executes in victim browser

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path traversal prevention
Exploitation Conditions

Exploitation requires that the application explicitly set the non-default reference: suffix option when calling fast-uri's serialize(), normalize(), or resolve() on a relative reference that has no authority component, and then treat the returned string as a live URL (e.g., render it in HTML or follow it). The default configuration is not affected. Limiting factors: the suffix option is non-default and developer-chosen (reflected as AC:H), the input must be a relative reference with a bare colon in its first path segment, and realizing the XSS payload further depends on the application rendering the unescaped output in a browser context. Documented workarounds are to avoid the suffix option on untrusted input or to percent-encode a colon in the first path segment before using the result as a URI.

Impact

This is a genuinely low-priority issue that the CVSS base score of 3.7 (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N) accurately reflects, and multiple signals agree rather than conflict. The vector is network-reachable and unauthenticated (PR:N), but high complexity (AC:H) is well-justified because exploitation depends entirely on the application opting into the non-default reference: suffix serialization option against a reference lacking an authority component - a narrow, developer-chosen code path. Impact is limited to Integrity (I:L) with no confidentiality or availability effect, consistent with an XSS/URL-confusion primitive rather than code execution. No EPSS score, no CISA KEV listing, and no public POC were provided, so exploitation status is 'no public exploit identified at time of analysis'; there is no SSVC decision data to cross-reference. The one elevating factor is prevalence: fast-uri is a heavily used transitive dependency in the Node.js ecosystem (Fastify, ajv), so the library is everywhere even though the vulnerable usage pattern is rare. Net assessment: real but low-urgency - a correctness/defense-in-depth fix, not an emergency patch, unless an application is known to pass untrusted input through serialize()/normalize()/resolve() with the suffix option.

Exploit ScenarioDerived

An application uses fast-uri's non-default reference: suffix option to normalize or serialize a user-supplied relative reference, then renders or follows the result as a URL. An attacker submits a relative reference whose first path segment contains a bare colon; fast-uri emits it unescaped, so the output reparses as an absolute URI, letting the attacker smuggle a javascript:, data:, or vbscript: scheme to achieve cross-site scripting. No public exploit code was identified in the provided data, and high attack complexity (AC:H) reflects the required non-default configuration.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 20, 2026

Serialization and normalization in the Node.js fast-uri library can emit a relative reference containing an unescaped bare colon in its first path segment, so a string that was inert on input re-parses as an absolute URI with a scheme - including javascript:, data:, or vbscript: - when the caller opts into the non-default reference: suffix mode. Applications on fast-uri before 2.4.8, 3.0.0 through 3.1.8, and 4.0.0 through 4.2.2 that pass untrusted relative references through serialize(), normalize(), or resolve() with that option and then render or follow the result inherit a cross-site scripting vector; the library's equal() comparison can likewise conflate a scheme-bearing reference with a relative one. The default configuration is unaffected, the attacker-controlled preconditions make this high-complexity (CVSS 3.1 base 3.7, AC:H, PR:N, impact limited to integrity), and no public exploit has been identified at time of analysis.

RemediationAI

Vendor-released patches are available: upgrade fast-uri to 2.4.8, 3.1.9, or 4.2.3 (or later) on the matching major line, as documented in GHSA-333x-w4r6-6crp (https://github.com/fastify/fast-uri/security/advisories/GHSA-333x-w4r6-6crp). Because the flaw is reachable only through the non-default reference: suffix option, teams that cannot upgrade immediately can drop that option for any code path handling untrusted input - accepting that suffix-style relative reference output will no longer be produced where it may currently be relied on - or, in place of a patch, percent-encode a colon appearing in the first path segment of the returned string before treating it as a URI, which preserves the suffix behavior at the cost of an extra normalization step that must be applied consistently to every call site or the bypass reappears. Downgrading the library is not a remediation, and since the default configuration is unaffected, prioritization should focus on locating call sites that pass reference: suffix rather than on blanket emergency upgrades.

Affected VersionsENISA

fast-uri 0 <2.4.8
fast-uri 4.0.0 <4.2.3
fast-uri 3.0.0 <3.1.9

Affected Packages

npm fast-uri fix: 2.4.8, 3.1.9, 4.2.3

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

fast-uri is a dependency-free implementation of RFC 3986 URI parsing and serialization used across the Node.js ecosystem, including as a transitive dependency of Fastify's routing stack. RFC 3986 §4.2 prohibits a colon in the first segment of a relative-path reference precisely because it is the delimiter that introduces a scheme, making such a string ambiguous - parsers will read foo:bar as scheme foo with path bar. The reference: suffix option changes how the library emits relative references that lack an authority component, and in the affected versions the serializer does not escape a colon appearing in that first segment, so the round-trip parse produces a different, scheme-bearing URI than the input. Classified as CWE-41 (Improper Resolution of Path Equivalence), the defect is one of representation and comparison rather than memory safety: the same missing escape also lets the library's equality check treat a scheme-bearing reference and a relative reference as the same value, which can bypass application-level validation that assumes normalized output stays relative. The relevant tags for this issue are XSS and Node.js; there is no CPE data in the available sources, but the affected package is the npm artifact fast-uri.

Know when Node.js gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (ce714d77-add3-4f53-aff5-83d477b104bb) PRIMARY 3.7 LOW
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
vuln.today AI 3.7 LOW

Attacker needs no privileges (PR:N) and input arrives over the network, but exploitation hinges on a non-default serialization option and authority-less reference (AC:H), yielding only integrity impact (I:L) via URL/XSS confusion.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (ce714d77-add3-4f53-aff5-83d477b104bb).

CVSS VectorVendor: ce714d77-add3-4f53-aff5-83d477b104bb

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

Lifecycle Timeline

2
Patch available
Oct 20, 2026 - 08:01 EUVD
CVE Published
Oct 20, 2026 - 07:17 cve.org
LOW 3.7

DescriptionCVE.org

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, when serialize(), normalize(), or resolve() are called with the non-default option reference set to suffix on a reference that has no authority, the emitted relative reference can contain a bare colon in its first path segment without escaping it, even though RFC 3986 forbids that because it makes the string reparse as an absolute URI with a scheme. An application that serializes or normalizes a relative reference with the suffix option and then treats the result as a URI can turn inert input into a live javascript, data, or vbscript URL, a cross-site scripting vector, and the equal() comparison can conflate a scheme-bearing reference with a relative one. Exposure is limited to applications using the non-default suffix reference option. 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, avoid the suffix reference option on untrusted input, or percent-encode a colon in the first path segment of the result before treating it as a URI.

Threat Intelligence Overview

EPSS Score
0.3%
Top 84% exploitable
Prevalence
High
widely-used transitive URI-parsing dependency across Fastify and ajv ecosystems
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
High

Priority Score

18
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +18
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy