All vulnerabilities
CVE-2026-110725GHSA-333x-w4r6-6crp

fast-uri vulnerable to scheme injection via an unescaped first-segment colon in suffix references

fast-uri fast-urinpmLibraries & packages
CVSS
3.7Low
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.25%Chance of exploitation activity in the next 30 days, higher than 16% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in2.4.8Also 3.1.9, 4.2.3GitHub
Published20 Oct 2026Updated 23 Oct 2026CVE List

What fixes it

  • 2.4.8fast-uri, npmGitHubnpm install fast-uri@2.4.8
  • 3.1.9fast-uri, npmGitHubnpm install fast-uri@3.1.9
  • 4.2.3fast-uri, npmGitHubnpm install fast-uri@4.2.3
  • 2.4.8fast-uriCVE List
  • 3.1.9fast-uriCVE List
  • 4.2.3fast-uriCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

Impact

fast-uri's serialize(), normalize(), and resolve(), when called with the non-default option reference: 'suffix' on a reference that has no authority, emit a relative reference whose first path segment contains a bare colon without escaping it. RFC 3986 section 3.3 requires the first segment of a path-noscheme reference not to contain a colon, precisely because a bare colon makes the string reparse as an absolute URI with a scheme. fast-uri's default serialization escapes that colon, but the suffix path does not.

For example, normalize('javascript:alert(1)', { reference: 'suffix' }) returns javascript:alert(1), which reparses as a live javascript: scheme; data: and vbscript: behave the same.

Applications that serialize or normalize a relative reference with reference: 'suffix' and then treat the result as a URI can turn inert input into a live javascript:, data:, or vbscript: URL (a cross-site scripting vector), and equal() can conflate a scheme-bearing reference with a relative one. Exposure is limited to applications that use the non-default reference: 'suffix' option.

Patches

Upgrade to fast-uri 2.4.8, 3.1.9, or 4.2.3.

Workarounds

Do not use the reference: 'suffix' option on untrusted input. If suffix output is required, percent-encode a colon in the first path segment of the result before treating it as a URI.

Text from GitHub Advisory Database

Affected versions 12

  • fast-uri, npm< 2.4.8GitHub
  • fast-uri, npm>= 3.0.0, < 3.1.9GitHub
  • fast-uri, npm>= 4.0.0, < 4.2.3GitHub
  • fast-uriaffected: all versions before 2.4.8CVE List
  • fast-uriunaffected: 2.4.8CVE List
  • fast-uriaffected: 3.0.0 before 3.1.9CVE List
  • fast-uriunaffected: 3.1.9CVE List
  • fast-uriaffected: 4.0.0 before 4.2.3CVE List
  • fast-uriunaffected: 4.2.3CVE List
  • fast-uri, npmfrom first release, fixed in 2.4.8OSV
  • fast-uri, npmfrom 3.0.0, fixed in 3.1.9OSV
  • fast-uri, npmfrom 4.0.0, fixed in 4.2.3OSV

References 9