GitHub Advisoryadvisory · npm
GHSA-q3j6-qgpj-74h6 fast-uri vulnerable to path traversal via percent-encoded dot segments
HIGH
Official page ↗
- Aliases
- CVE-2026-6321
- Ecosystem
- npm
- Packages
- fast-uri
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
- Weaknesses
- CWE-22
- Reviewed
- 2026-05-08
Affected packages
• npm fast-uri: >= 3.0.0, < 3.1.1 → fixed in 3.1.1
• npm fast-uri: < 2.4.1 → fixed in 2.4.1
Description
Impact
`fast-uri` v3.1.0 and earlier decodes percent-encoded path separators (`%2F`) and dot segments (`%2E`) before applying dot-segment removal in `normalize()` and `equal()`. This makes encoded path data behave like real `/` and `..`, so distinct URIs collapse onto the same normalized path.
For example, `http://example.com/public/%2e%2e/admin` normalizes to `http://example.com/admin`, and `equal()` considers them the same URI.
Applications that normalize or compare attacker-controlled URLs to enforce path-based policy can be bypassed. A path that looks confined under an allowed prefix can normalize to a different location.
Patches
Upgrade to `fast-uri` >= 3.1.1, or if you are in the v2.x release line, v2.4.1
Workarounds
None. Upgrade to the patched version.
Related
Alias · CVE (1)
- CVE-2026-6321 fast-uri decoded percent-encoded path separators and dot segments before applying dot-segment removal in its normalize() and equal()… vulnerability
Weakness · CWE (1)
- CWE-22 Improper Limitation of a Pathname to a Restricted Directory weakness
References
- https://github.com/fastify/fast-uri/security/advisories/GHSA-q3j6-qgpj-74h6 web
- https://nvd.nist.gov/vuln/detail/CVE-2026-6321 advisory
- https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-6321.json web
- https://github.com/fastify/fast-uri/releases/tag/v3.1.1 web
- https://github.com/fastify/fast-uri/releases/tag/v2.4.1 web
- https://github.com/fastify/fast-uri package
- https://cna.openjsf.org/security-advisories.html web
- https://bugzilla.redhat.com/show_bug.cgi?id=2466582 web
- https://access.redhat.com/security/cve/CVE-2026-6321 web
- https://access.redhat.com/errata/RHSA-2026:57013 web
- https://access.redhat.com/errata/RHSA-2026:56928 web
- https://access.redhat.com/errata/RHSA-2026:56431 web
- https://access.redhat.com/errata/RHSA-2026:56366 web
- https://access.redhat.com/errata/RHSA-2026:42079 web
- https://access.redhat.com/errata/RHSA-2026:42078 web
- https://access.redhat.com/errata/RHSA-2026:37385 web
- https://access.redhat.com/errata/RHSA-2026:34342 web
- https://access.redhat.com/errata/RHSA-2026:26420 web
- https://access.redhat.com/errata/RHSA-2026:26416 web
- https://access.redhat.com/errata/RHSA-2026:26234 web
- https://access.redhat.com/errata/RHSA-2026:26214 web
- https://access.redhat.com/errata/RHSA-2026:25123 web
- https://access.redhat.com/errata/RHSA-2026:25089 web
- https://access.redhat.com/errata/RHSA-2026:24977 web
- https://access.redhat.com/errata/RHSA-2026:24866 web
- https://access.redhat.com/errata/RHSA-2026:24766 web
- https://access.redhat.com/errata/RHSA-2026:24473 web
- https://access.redhat.com/errata/RHSA-2026:21338 web
- https://access.redhat.com/errata/RHSA-2026:20338 web
- https://access.redhat.com/errata/RHSA-2026:19238 web