Description
shell-quote prior to 1.8.5 finalizes parsed tokens in parse() using Array.prototype.concat as a reduce accumulator, which reallocates and copies the entire growing array on every iteration. As a result parse() runs in O(n^2) time relative to the number of input tokens. An attacker who can supply an attacker-controlled string to any code path that calls parse() (no shell metacharacters are required; plain space-separated words suffice) can block the single-threaded Node.js event loop for an extended period with a small input, resulting in a denial of service. There is no code execution or data disclosure; impact is to availability only. Fixed in 1.8.5.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| ljharb | shell-quote | ≤ 1.8.4 | — |
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-shell-quote | 1.9.0+~1.7.5-1 | — |
| Debian 13 | node-shell-quote | 1.7.4+~1.7.1-1+deb13u2 | — |
| Debian 12 | node-shell-quote | 1.7.4+~1.7.1-1+deb12u2 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | node-shell-quote | No fix yet | — |
| Ubuntu 25.10 | node-shell-quote | No fix yet | — |
| Ubuntu 24.04 LTS | node-shell-quote | No fix yet | — |
Show 3 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro 26.04 LTS | node-shell-quote | No fix yet | — |
| Ubuntu Pro 22.04 LTS | node-shell-quote | No fix yet | — |
| Ubuntu Pro 18.04 LTS | node-shell-quote | No fix yet | — |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Tumbleweed | agama-web-ui | 23+75.1a877fb50-50.1 | openSUSE-SU-2026:11472-1 |
| openSUSE Tumbleweed | heroic-games-launcher | 2.22.0-3.1 | openSUSE-SU-2026:11145-1 |
| openSUSE Tumbleweed | python-pytest-html | 4.2.0-3.1 | openSUSE-SU-2026:11149-1 |
| openSUSE Leap 16.0 | agama-web-ui | 17+673.b97ba64d6-160000.12.1 | openSUSE-SU-2026:21448-1 |
| openSUSE Leap 16.0 | python-pytest-html | 4.1.1-bp160.3.1 | openSUSE-SU-2026:21176-1 |
Wolfi
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Wolfi rolling | argo-workflows-ui-4.0 | 4.0.11-r0 | — |
| Wolfi rolling | code-server | 4.130.0-r3 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| npm | shell-quote | < 1.9.0 | 1.9.0 | GHSA-395f-4hp3-45gv |
Advisories 5
- openSUSE-SU-2026:11472-1 agama-web-ui-23+75.1a877fb50-50.1 on GA media SUSE / openSUSE Security Updates · Aug 10, 2026
- openSUSE-SU-2026:21448-1 Security update for agama-web-ui SUSE / openSUSE Security Updates · Jul 29, 2026
- openSUSE-SU-2026:21176-1 Security update for python-pytest-html SUSE / openSUSE Security Updates · Jul 2, 2026
- openSUSE-SU-2026:11149-1 python311-pytest-html-4.2.0-3.1 on GA media SUSE / openSUSE Security Updates · Jun 30, 2026
- openSUSE-SU-2026:11145-1 heroic-games-launcher-2.22.0-3.1 on GA media SUSE / openSUSE Security Updates · Jun 30, 2026
References
- GHSA-395f-4hp3-45gv vendor-advisory
- https://www.npmjs.com/package/shell-quote product