CVE-2026-13311CWE-407

shell-quote parse() is quadratic in token count, enabling denial of service

High · published June 25, 2026

CVSS v4.0
8.7
EPSS
0%
Percentile
28.6
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v4.0
8.7 · HIGH
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
EPSS
0.00360 · 28.6th percentile
Weakness
CWE-407 · Inefficient Algorithmic Complexity
Published
2026-06-25T04:48Z
EPSS history
Timeline
  • 25 JUN 04:48Z
    shell-quote parse() is quadratic in token count, enabling denial of service
    cvelistv5