Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
AC:H because exploitation needs the specific fast-uri-check-then-Node-fetch pattern; PR:N/UI:N as attacker-supplied URLs suffice; C:H reflects SSRF to metadata/internal resources over I:N.
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
Primary rating from Vendor (openjs).
CVSS VectorVendor: openjs
Lifecycle Timeline
3DescriptionCVE.org
Impact: fast-uri versions from 2.3.1 through 4.1.0 (including the 3.x line up to 3.1.3 and the 2.x line up to 2.4.2) do not treat a literal backslash character (U+005C) as an authority delimiter. Node's native WHATWG URL parser, used by fetch, undici, and Node's http and https clients, normalizes the backslash to a forward slash for special schemes such as http, https, ws, wss, ftp, and file. As a result, the two parsers extract different hosts from the same input string. Applications that use fast-uri to enforce host-based policy such as allowlists, denylists, loopback or SSRF filtering, redirect validation, or outbound proxy routing before passing the same URL into Node's URL or fetch consumers can be steered to an unintended destination, including cloud metadata endpoints, loopback, or internal hosts.
Patches: upgrade to fast-uri 4.1.1, 3.1.4, or 2.4.3.
Workarounds: none.
AnalysisAI
Host-based policy bypass in the fast-uri Node.js URI parser (versions 2.3.1 through 4.1.0, spanning the 2.x line up to 2.4.2 and the 3.x line up to 3.1.3) allows remote attackers to smuggle a different host past allowlist, denylist, SSRF, loopback, and redirect-validation checks by using a literal backslash. Because fast-uri does not treat U+005C as an authority delimiter while Node's native WHATWG URL parser (used by fetch, undici, and the http/https clients) normalizes backslash to forward slash for special schemes, the two parsers disagree on the host, enabling requests to be steered to cloud metadata, loopback, or internal endpoints. There is no public exploit identified at time of analysis, but the flaw is trivially triggerable in affected deployments and openjsf has published a fix.
Technical ContextAI
The affected component is fast-uri, a high-performance RFC 3986 URI parser widely used in the Fastify ecosystem (notably as ajv's URI resolver) as a drop-in replacement for uri-js. The root cause is classified as CWE-436 (Interpretation Conflict / parser differential): fast-uri follows strict RFC 3986 semantics where a backslash is a normal path character and not part of the authority, whereas Node's built-in WHATWG URL parser - the one backing fetch, undici, and the native http/https clients - applies WHATWG special-scheme normalization that rewrites backslashes to forward slashes for http, https, ws, wss, ftp, and file URLs. When one library extracts the host for a security decision and a different library extracts the host for the actual outbound request, the same input string resolves to two different destinations. The single affected CPE is cpe:2.3:a:fast-uri:fast-uri:*:*:*:*:*:*:*:*.
RemediationAI
Vendor-released patch: upgrade fast-uri to 4.1.1 (4.x line), 3.1.4 (3.x line), or 2.4.3 (2.x line) depending on the major version you run; these releases make fast-uri treat a literal backslash consistently so its host extraction aligns with Node's WHATWG parser. The vendor states there are no workarounds, so patching is the required fix. As interim compensating controls until you can upgrade, reject or normalize any URL whose authority or path contains a backslash before it reaches your policy check (fail closed on U+005C), and standardize on a single parser end-to-end - use Node's native URL/WHATWG parser for BOTH the security decision and the outbound request so the two cannot disagree; the trade-off is that pre-normalizing input may break rare legitimate URLs containing encoded backslashes. Where feasible, enforce SSRF protection at the network layer as defense in depth by blocking outbound access to 169.254.169.254 and other metadata/loopback/internal ranges from application egress. Track fixes via GHSA-v2hh-gcrm-f6hx (https://github.com/fastify/fast-uri/security/advisories/GHSA-v2hh-gcrm-f6hx).
Host-based security policy bypass in the fast-uri Node.js URI parser (versions 2.3.1 through 3.1.2 and 4.0.0) lets remot
Security filter bypass in fast-uri (before versions 4.1.2, 3.1.5, and 2.4.4) enables unauthenticated remote attackers to
Path normalization bypass in fast-uri 3.1.0 and earlier allows remote attackers to circumvent path-based access controls
Authority confusion in fast-uri JavaScript library allows remote attackers to bypass URL validation security controls. T
Host confusion in fast-uri, a Node.js URI parser in the Fastify ecosystem, allows policy bypass by exploiting inconsiste
Server-side request forgery and address-policy bypass in fast-uri, the Node.js URI parser used widely in the fastify eco
Double-decoding of percent-encoded hostnames in fast-uri (Node.js URI parser) creates a server-side request forgery and
Parsing and serialization inconsistency in fast-uri, the Node.js URI parser core to the Fastify ecosystem, allows networ
URI authority injection in fast-uri allows an attacker-supplied port value containing delimiter characters to demote the
Host-parsing ambiguity in fast-uri allows attackers to silently bypass SSRF denylists, redirect allowlists, and proxy ro
Same weakness CWE-436 – Interpretation Conflict
View allVendor StatusVendor
SUSE
Severity: Important| Product | Status |
|---|---|
| SUSE Linux Enterprise Micro 5.3 | Not-Affected |
| SUSE Linux Enterprise Micro 5.3 | Not-Affected |
| SUSE Linux Enterprise Micro 5.3 | Not-Affected |
| SUSE Linux Enterprise Micro 5.3 | Not-Affected |
| SUSE Linux Enterprise Micro 5.4 | Not-Affected |
| SUSE Linux Enterprise Micro 5.4 | Not-Affected |
| SUSE Linux Enterprise Micro 5.4 | Not-Affected |
| SUSE Linux Enterprise Micro 5.4 | Not-Affected |
| SUSE Linux Enterprise Micro 5.5 | Not-Affected |
| SUSE Linux Enterprise Micro 5.5 | Not-Affected |
| SUSE Linux Enterprise Micro 5.5 | Not-Affected |
| SUSE Linux Enterprise Micro 5.5 | Not-Affected |
| SUSE Linux Enterprise Module for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| SUSE Linux Micro 6.0 | Not-Affected |
| SUSE Linux Micro 6.0 | Not-Affected |
| SUSE Linux Micro 6.0 | Affected |
| SUSE Linux Micro 6.0 | Not-Affected |
| SUSE Linux Micro 6.1 | Affected |
| SUSE Linux Micro 6.1 | Not-Affected |
| SUSE Linux Micro 6.1 | Not-Affected |
| SUSE Linux Micro 6.1 | Affected |
| SUSE Linux Micro 6.2 | Affected |
| SUSE Linux Micro 6.2 | Affected |
| SUSE Linux Micro 6.2 | Affected |
| SUSE Linux Micro 6.2 | Affected |
| SUSE Linux Micro 6.2 | Affected |
| SUSE Linux Micro 6.2 | Affected |
| openSUSE Leap 16.0 | Affected |
| openSUSE Leap 16.0 | Affected |
| openSUSE Leap 16.0 | Affected |
| openSUSE Leap 16.0 | Affected |
| openSUSE Leap 16.0 | Affected |
| openSUSE Leap 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Affected |
| SUSE Linux Enterprise Module for SAP Applications 15 SP3 | Affected |
| SUSE Linux Enterprise Module for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Module for SAP Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Module for SAP Applications 15 SP6 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| openSUSE Leap Micro 5.5 | Not-Affected |
| openSUSE Leap Micro 5.5 | Not-Affected |
| openSUSE Leap Micro 5.5 | Not-Affected |
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-45551
GHSA-v2hh-gcrm-f6hx