CVE-2026-9277

node-shell-quote: shell-quote's `quote()` function did not validate object-token inputs against the operator model used by `parse()`

CVE-2026-9277 is fixed in 2 products on 1 platform, first by node-shell-quote 1.6.1+20160617-git72fb5a8ce29b-1ubuntu0.1~esm1, released May 22, 2026. It is not reported as exploited. Patch Radar priority: Routine.

Routine
CVSS
n/a
Medium
Exploitation
None reported
No vendor assessment
CISA KEV
Not listed
Not in the Known Exploited Vulnerabilities catalog
EPSS
0.0079
56th percentile

shell-quote's `quote()` function did not validate object-token inputs against the operator model used by `parse()`. The `.op` field was backslash-escaped character by character using `/(.)/g`, which in JavaScript does not match line terminators (\n, \r, U+2028, U+2029). A line terminator in `.op` therefore passed through unescaped into the output; POSIX shells treat a literal newline as a command separator, so any content after it would execute as a second command. The vulnerable code path is reachable in two ways: (1) direct construction of `{ op: '...\n...' }` from external input, and (2) via `parse(cmd, envFn)` when `envFn` returns object tokens whose `.op` is attacker-influenced. Both are documented API surface. Fixed by replacing the per-character escape with strict shape validation: `.op` must match the parser's control-operator allowlist; `{ op: 'glob', pattern }` validates `pattern` and forbids line terminators; `{ comment }` validates `comment` and forbids line terminators; any other object shape throws `TypeError`.

Where it's fixed

ProductFixed inFixReleased
Linux
agama-web-ui · opensuse-leap 16.0 17+612.d8bf69336-160000.11.1 OPENSUSE-SU-2026:20919-1 Jun 8, 2026
node-shell-quote · Debian 12.15 (bookworm) 1.7.4+~1.7.1-1+deb12u1 DEBIAN-CVE-2026-9277 May 27, 2026
node-shell-quote · Debian 13.5 (trixie) 1.7.4+~1.7.1-1+deb13u1 DEBIAN-CVE-2026-9277 May 27, 2026
node-shell-quote · Debian 14 1.8.4+~1.7.5-1 DEBIAN-CVE-2026-9277 May 27, 2026
node-shell-quote · Ubuntu 18.04.6 LTS (bionic) 1.6.1+20160617-git72fb5a8ce29b-1ubuntu0.1~esm1 node-shell-quote 1.6.1+20160617-git72fb5a8ce29b-1ubuntu0.1~esm1 May 22, 2026
node-shell-quote · Ubuntu 22.04.1 LTS (jammy) 1.7.3+~1.7.1-1ubuntu0.1~esm1 node-shell-quote 1.7.3+~1.7.1-1ubuntu0.1~esm1 May 22, 2026
node-shell-quote · Ubuntu 24.04.5 LTS (noble) 1.7.4+~1.7.1-1ubuntu0.24.04.1 node-shell-quote 1.7.4+~1.7.1-1ubuntu0.24.04.1 May 22, 2026
node-shell-quote · Ubuntu 25.10 (questing) 1.7.4+~1.7.1-1ubuntu0.25.10.1 node-shell-quote 1.7.4+~1.7.1-1ubuntu0.25.10.1 May 22, 2026
node-shell-quote · Ubuntu 26.04.1 LTS (resolute) 1.8.3+~1.7.5-1ubuntu0.1~esm1 node-shell-quote 1.8.3+~1.7.5-1ubuntu0.1~esm1 May 22, 2026

Patch Radar data is free to use with attribution. Terms and how to credit it.

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.