~ / search / GHSA-xhq7-xmqj-769h

GHSA-xhq7-xmqj-769h

fast-uri vulnerable to improper path equivalence in relative reference normalization

Source: GitHub Advisory Database (reviewed) Low CVE-2026-110095

Packages

EcosystemPackageAffectedFixed in
npm fast-uri < 2.4.8 2.4.8
npm fast-uri >= 3.0.0, < 3.1.9 3.1.9
npm fast-uri >= 4.0.0, < 4.2.3 4.2.3

Details

As written in the advisory (Markdown source, shown as plain text).

### 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.

References

External links from the advisory. They lead to third-party sites.