GHSA-333x-w4r6-6crp: Low severity npm/fast-uri vulnerability

Published Oct 23, 2026
·
Updated

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.

Affected Software

3 affected componentsFixes available
npm/fast-uri>=4.0.0<4.2.3
4.2.3
npm/fast-uri>=3.0.0<3.1.9
3.1.9
npm/fast-uri<2.4.8
2.4.8

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade npm/fast-uri to a version that resolves this vulnerability.

    Fixed in 4.2.3
  2. Upgrade

    Upgrade npm/fast-uri to a version that resolves this vulnerability.

    Fixed in 3.1.9
  3. Upgrade

    Upgrade npm/fast-uri to a version that resolves this vulnerability.

    Fixed in 2.4.8
  4. Upgrade

    Upgrade fast-uri to a version that resolves this vulnerability.

    Fixed in 2.4.8
  5. Configuration

    Do not use the reference: 'suffix' option on untrusted input.

    fast-uri reference = not 'suffix'
  6. Compensating control

    If suffix output is required, percent-encode a colon in the first path segment before treating the result as a URI.

Event History

Oct 23, 2026
Advisory Published
via GitHub·09:36 PM
Data Sourced
via GitHub·09:36 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

Are applications using fast-uri with its default settings affected?

Exposure is limited to applications that use the non-default reference: 'suffix' option. The default serialization behavior escapes the colon in the first path segment.

2

What conditions are required for exploitation?

An application must serialize, normalize, or resolve a reference with reference: 'suffix' and then treat the resulting string as a URI. A crafted relative reference can then reparse as a javascript:, data:, or vbscript: URL, creating a potential cross-site scripting vector.

3

Which versions contain fixes?

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

4

Is there a related risk when comparing URI references?

Yes. The advisory states that equal() can conflate a scheme-bearing reference with a relative reference. Review uses of equal() where this distinction affects URL validation or security decisions.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203