URI scheme spoofing in fast-uri via percent-encoded scheme decoding
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- Low · Low · None
- Fix status
- Partial Red Hat: 1 fixed, 32 without a fix
Attack profile from CVSS 3.1 · CNA. Fix status from CNA, GitHub and Red Hat.
Summary
fast-uri versions before 2.4.8, from 3.0.0 before 3.1.9, and from 4.0.0 before 4.2.3 decode the URI scheme with the legacy unescape() function before validating it (CWE-180). An application that screens schemes on the raw input and then renders the normalized result can turn an inert string into a javascript, data, or vbscript URL, enabling cross-site scripting. The equal() function also treats an encoded and a plain scheme as the same, which can bypass equality-based allowlists.
Written with Claude Haiku 5.5 from the sources below · 2026-11-05
Description from the CNA
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, fast-uri percent-decodes the scheme component with the legacy global unescape() function before validating it, so an input whose decoded scheme is a dangerous token is emitted as a live scheme even though RFC 3986 does not allow percent-encoding in a scheme and no other parser accepts it. An application that screens dangerous schemes on the raw input and then stores or renders the normalized or resolved result can turn an inert string into an executable javascript, data, or vbscript URL, producing a stored or reflected cross-site scripting vector, and the equal() comparison treats an encoded and a plain scheme as the same, which can bypass equality-based allowlists. 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 input whose scheme part contains a percent sign, or check the parsed scheme against an allowlist after normalization and use that same parsed result rather than the raw string.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| fast-uri | fast-uri | before 2.4.8; 3.0.0 to before 3.1.9; 4.0.0 to before 4.2.3 | 2.4.8, 3.1.9, 4.2.3 | Patch available | CNA |
| — | fast-uri (npm) | before 2.4.8 | 2.4.8 | Patch available | GHSA-w74x-v6f9-j3xg |
| — | fast-uri (npm) | 3.0.0 to before 3.1.9 | 3.1.9 | Patch available | GHSA-w74x-v6f9-j3xg |
| — | fast-uri (npm) | 4.0.0 to before 4.2.3 | 4.2.3 | Patch available | GHSA-w74x-v6f9-j3xg |
- fast-uri Vendorfast-uri Affected before 2.4.8; 3.0.0 to before 3.1.9; 4.0.0 to before 4.2.3 Fixed in 2.4.8, 3.1.9, 4.2.3 Patch available CNA
- fast-uri (npm) Vendor— Affected before 2.4.8 Fixed in 2.4.8 Patch available GHSA-w74x-v6f9-j3xg
- fast-uri (npm) Vendor— Affected 3.0.0 to before 3.1.9 Fixed in 3.1.9 Patch available GHSA-w74x-v6f9-j3xg
- fast-uri (npm) Vendor— Affected 4.0.0 to before 4.2.3 Fixed in 4.2.3 Patch available GHSA-w74x-v6f9-j3xg
Remediation
Upgrade to fast-uri 2.4.8, 3.1.9, or 4.2.3, depending on the release line. Red Hat fixes Red Hat Hardened Images through RHSA-2026:91292, RHSA-2026:91181, RHSA-2026:90990, and RHSA-2026:90388. Red Hat has no fix available for Cost Management On Premise, Cryostat 4, Migration Toolkit for Applications 8, Multicluster Engine for Kubernetes, Network Observability Operator, and other products, and has no fix planned for Red Hat Directory Server 11.
Written with Claude Haiku 5.5 from the sources below · 2026-11-05
- Fix · CNA fast-uri (fast-uri) Fixed in 2.4.8, 3.1.9, 4.2.3
- Fix · GHSA-w74x-v6f9-j3xg fast-uri (npm) Fixed in 2.4.8 Advisory →
- Fix · GHSA-w74x-v6f9-j3xg fast-uri (npm) Fixed in 3.1.9 Advisory →
- Fix · GHSA-w74x-v6f9-j3xg fast-uri (npm) Fixed in 4.2.3 Advisory →
Red Hat 4 advisories
- RHSA-2026:91292 Released 2026-10-27 · Red Hat rating ImportantRed Hat Hardened Images RPMs Security Update
- Red Hat Hardened Images grafana12.4-12.4.13-0.5.hum1@aarch64, grafana12.4-12.4.13-0.5.hum1@src, grafana12.4-12.4.13-0.5.hum1@x86_64
- RHSA-2026:91181 Released 2026-10-27 · Red Hat rating ImportantRed Hat Hardened Images RPMs Security Update
- Red Hat Hardened Images grafana13.1-13.1.8-0.5.hum1@aarch64, grafana13.1-13.1.8-0.5.hum1@s390x, grafana13.1-13.1.8-0.5.hum1@src +1
- RHSA-2026:90990 Released 2026-10-27 · Red Hat rating ImportantRed Hat Hardened Images RPMs Security Update
- Red Hat Hardened Images grafana13.2-13.2.4-0.4.hum1@aarch64, grafana13.2-13.2.4-0.4.hum1@s390x, grafana13.2-13.2.4-0.4.hum1@src +1
Show 1 more Red Hat advisories
- RHSA-2026:90388 Released 2026-10-26 · Red Hat rating ImportantRed Hat Hardened Images RPMs Security Update
- Red Hat Hardened Images grafana12.4-12.4.13-0.4.hum1@aarch64, grafana12.4-12.4.13-0.4.hum1@src, grafana12.4-12.4.13-0.4.hum1@x86_64
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
fast-uri 2.4.8, 3.1.9, 4.2.3
4 records Highest priority Priority LOW 4 LOW
Other records, highest priority first
- TI-2026-76743 Host confusion in fast-uri from unchecked host canonicalizationPriority LOW 22
- TI-2026-76745 Scheme injection in fast-uri via unescaped colon in suffix referencesPriority LOW 17
- TI-2026-76742 Improper path resolution in fast-uri relative reference normalizationPriority LOW 17
Vendor assessments
Red Hat
Red Hat rating: Moderate. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Cost Management On Premise | Affected | No fix yet: Fix deferred |
| Cryostat 4 | Affected | No fix yet: Fix deferred |
| Migration Toolkit for Applications 8 | Affected | No fix yet: Fix deferred |
| Multicluster Engine for Kubernetes | Affected | No fix yet: Fix deferred |
| Network Observability Operator | Affected | No fix yet: Fix deferred |
| OpenShift Lightspeed | Affected | No fix yet: Fix deferred |
| OpenShift Pipelines | Affected | No fix yet: Fix deferred |
| OpenShift Serverless | Affected | No fix yet: Fix deferred |
| Red Hat AMQ Broker 7 | Affected | No fix yet: Fix deferred |
| Red Hat Advanced Cluster Management for Kubernetes 2 | Affected | No fix yet: Fix deferred |
| Red Hat Ansible Automation Platform 2 | Affected | No fix yet: Fix deferred |
| Red Hat Build of Podman Desktop | Affected | No fix yet: Fix deferred |
| Red Hat Data Grid 8 | Affected | No fix yet: Fix deferred |
| Red Hat Developer Hub 1 | Affected | No fix yet: Fix deferred |
| Red Hat Directory Server 11 | Affected | No fix planned: Out of support scope |
| Red Hat Directory Server 12 | Affected | No fix planned: Out of support scope |
| Red Hat Discovery 2 | Affected | No fix yet: Fix deferred |
| Red Hat Edge Manager 1 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux 10 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux 8 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux 9 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux AI (RHEL AI) 3 | Affected | No fix yet: Fix deferred |
| Red Hat OpenShift AI (RHOAI) | Affected | No fix yet: Fix deferred |
| Red Hat OpenShift Container Platform 4 | Affected | No fix yet: Fix deferred |
| Red Hat OpenShift Container Platform 5 | Affected | No fix yet: Fix deferred |
| Red Hat OpenShift Dev Spaces | Affected | No fix yet: Fix deferred |
| Red Hat Openshift Data Foundation 4 | Affected | No fix yet: Fix deferred |
| Red Hat Quay 3 | Affected | No fix planned: Out of support scope |
| Red Hat Satellite 6 | Affected | No fix yet: Fix deferred |
| Red Hat build of Apache Camel - HawtIO 4 | Affected | No fix yet: Fix deferred |
| Secrets Management Console for Red Hat OpenShift | Affected | No fix planned: Out of support scope |
| Self-service automation portal 2 | Affected | No fix yet: Fix deferred |
| Red Hat Hardened Images | Fixed | RHSA-2026:90388, RHSA-2026:90990, RHSA-2026:91181, RHSA-2026:91292 |
Not affected: 1 product
- Red Hat Hardened Images
Timeline
- 2026-10-20 Threatist record created from CVE-2026-110306
- 2026-10-20 Affected versions changed · Red Hat
- 2026-10-20 CVSS score added · Red Hat
- 2026-10-20 CISA SSVC decision points changed
- 2026-10-20 Priority changed: MEDIUM → LOW
- 2026-10-23 Alias added: GHSA-w74x-v6f9-j3xg
- 2026-10-23 Fix available: npm/[email protected], npm/[email protected], npm/[email protected] · GHSA-w74x-v6f9-j3xg
- 2026-10-23 CVSS score added · GHSA-w74x-v6f9-j3xg
- 2026-10-23 Weakness changed · GHSA-w74x-v6f9-j3xg
- 2026-10-23 10 new references · GHSA-w74x-v6f9-j3xg
- 2026-10-27 Affected versions changed · Red Hat
- 2026-10-30 Fix available: RHSA-2026:90388 · Red Hat
- 2026-10-30 Fix available: RHSA-2026:90990 · Red Hat
- 2026-10-30 Fix available: RHSA-2026:91181 · Red Hat
- 2026-10-30 Fix available: RHSA-2026:91292 · Red Hat
- 2026-10-30 Fix available: Red Hat Hardened Images · Red Hat
- 2026-10-30 Affected versions changed · Red Hat
References
Other 9
- https://github.com/fastify/fast-uri/security/advisories/GHSA-w74x-v6f9-j3xg
- https://cna.openjsf.org/security-advisories.html
- https://github.com/fastify/fast-uri/commit/39933a1f1422986f14e2d844f552238feb40f5d4
- https://github.com/fastify/fast-uri/commit/597f254c86d151568511eeb9a1df761fd12520b3
- https://github.com/fastify/fast-uri/commit/e60e716f41d1d73717e2d803d20b68d2c6d20a0f
- https://github.com/fastify/fast-uri
- https://github.com/fastify/fast-uri/releases/tag/v2.4.8
- https://github.com/fastify/fast-uri/releases/tag/v3.1.9
- https://github.com/fastify/fast-uri/releases/tag/v4.2.3
More fast-uri vulnerabilities
- TI-2026-20392 WebdriverIO has Command Injection in the BrowserStack Service CVSS 3.1CRITICAL 9.8
- TI-2022-08786 qs before 6.10.3, as used in Express before 4.17.3 and other products, allows attackers… CVSS 3.1HIGH 7.5
- TI-2026-09267 nvm executes commands from a malicious Node.js mirror's version strings CVSS 4.0HIGH 7.5
- TI-2026-30143 Marko: XSS via case-insensitive script/style closing tag bypass in runtime HTML escaping CVSS 3.1MEDIUM 6.4
- TI-2025-32161 Stack overflow vulnerability in eslint before 9.26.0 when serializing objects with… CVSS 3.1MEDIUM 5.5
- TI-2024-09717 Preload arbitrary resources by injecting additional `Link` headers CVSS 3.1MEDIUM 5.3
Sources
- CVE-2026-110306 · CVE Program
- CVE-2026-110306 · NVD
- FIRST EPSS
- GHSA-w74x-v6f9-j3xg · GitHub Advisory Database · CC BY 4.0
- CVE-2026-110306 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences