CVE-2026-9277 Affecting node-shell-quote package, versions <1.6.1+20160617-git72fb5a8ce29b-1ubuntu0.1~esm1


Severity

Recommended
medium

Based on Ubuntu security rating.

Threat Intelligence

EPSS
0.85% (54th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-UBUNTU1804-NODESHELLQUOTE-16877443
  • published9 Jun 2026
  • disclosed22 May 2026

Introduced: 22 May 2026

CVE-2026-9277  (opens in a new tab)

How to fix?

Upgrade Ubuntu:18.04 node-shell-quote to version 1.6.1+20160617-git72fb5a8ce29b-1ubuntu0.1~esm1 or higher.

NVD Description

Note: Versions mentioned in the description apply only to the upstream node-shell-quote package and not the node-shell-quote package as distributed by Ubuntu. See How to fix? for Ubuntu:18.04 relevant fixed versions and status.

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: &#39;...\n...&#39; } 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: &#39;glob&#39;, pattern } validates pattern and forbids line terminators; { comment } validates comment and forbids line terminators; any other object shape throws TypeError.

References

CVSS Base Scores

version 3.1