fast-uri vulnerable to improper path equivalence in relative reference normalization
What fixes it
- 2.4.8fast-uri, npmGitHub
npm install fast-uri@2.4.8 - 3.1.9fast-uri, npmGitHub
npm install fast-uri@3.1.9 - 4.2.3fast-uri, npmGitHub
npm 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 normalize() and serialize() apply RFC 3986 dot-segment removal (remove_dot_segments) to the path of a relative-path reference. RFC 3986 section 5.2.4 defines that algorithm only for the merged target path during resolution, not for the reference itself, so applied to the reference it drops leading .. segments and can turn a document-relative reference into a root-relative one.
For example, normalize('a/../b') returns /b and normalize('../x') returns x, so resolve(base, normalize(ref)) points at a different resource than resolve(base, ref), and equal() treats distinct references as the same.
Applications that normalize attacker-supplied or user-supplied relative references and then resolve them, or use them as cache, deduplication, or authorization keys, can have a reference escape its intended directory and point at a different resource.
Patches
Upgrade to fast-uri 2.4.8, 3.1.9, or 4.2.3.
Workarounds
Do not normalize a relative reference before resolving it. Resolve it against the absolute base first, then normalize the absolute result.
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 13
- github.com/fastify/fast-uri/commit/048bbd0a252971be86d6579f0dfc87f8de5b9c47Fixvia GitHub
- github.com/fastify/fast-uri/commit/52774a5c35df36b0bbe439cd4c12c3dc0e50e3b9Fixvia GitHub
- github.com/fastify/fast-uri/commit/7c19f8b97ec51f1f20b4e3d9d5820cb8d5176058Fixvia GitHub
- github.com/fastify/fast-uri/commit/9eb8759a9825c046f57f7f695f1944bc39b88abdFixvia GitHub
- github.com/fastify/fast-uri/commit/acc5c5d60c4209571789496e1732468911c7e12aFixvia GitHub
- github.com/fastify/fast-uri/commit/b110a3571c37dfcf9d1c72ce2e2e178c78d1a424Fixvia GitHub
- github.com/fastify/fast-uri/releases/tag/v2.4.8Fixvia GitHub
- github.com/fastify/fast-uri/releases/tag/v3.1.9Fixvia GitHub
- github.com/fastify/fast-uri/releases/tag/v4.2.3Fixvia GitHub
- github.com/fastify/fast-uri/security/advisories/GHSA-xhq7-xmqj-769hAdvisoryvia CVE List
- cna.openjsf.org/security-advisories.htmlAdvisoryvia CVE List
- github.com/advisories/GHSA-xhq7-xmqj-769hAdvisoryvia GitHub
- nvd.nist.gov/vuln/detail/CVE-2026-110095Referencevia GitHub