Description
uri-js through 4.4.1 contains an improper UTF-8 decoding vulnerability in pctDecChars() that decodes invalid and overlong percent-encoded sequences into ASCII metacharacters. Attackers can craft percent-encoded payloads to bypass platform decoder validation and inject path traversal or CRLF sequences that downstream consumers process without filtering.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| garycourt | uri-js | ≤ 4.4.1 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | node-uri-js | No fix yet | — |
| Debian 13 | node-uri-js | No fix yet | — |
| Debian 12 | node-uri-js | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | node-uri-js | No fix yet | — |
| Ubuntu 26.04 LTS | node-uri-js | No fix yet | — |
| Ubuntu 24.04 LTS | node-uri-js | No fix yet | — |
| Ubuntu 22.04 LTS | node-uri-js | No fix yet | — |
| Ubuntu 20.04 LTS | node-uri-js | No fix yet | — |
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 3 | js-jquery | No fix yet | — |
References
- GitHub Issue #106 issue-tracking
- https://github.com/garycourt/uri-js product
- pctDecChars() masking bytes without continuation-byte validation technical-description
- VulnCheck Advisory: uri-js through 4.4.1 Improper UTF-8 Decoding via pctDecChars third-party-advisory