CVE-2026-69152
PoC massUncontrolled Resource Consumption (DoS) in brace-expansion npm library
The brace-expansion npm library's expand() function fails to enforce maxLength while building comma-alternative intermediate arrays and padded sequences, allowing attacker-supplied brace patterns to consume unbounded memory or block the Node.js event loop. An attacker who can control the strings passed to the library — typically via an application that expands user-supplied glob-like patterns — can trigger a denial of service, with no confidentiality or integrity impact. The flaw affects all versions prior to 1.1.18, 2.1.4, 3.0.6, and 5.0.9, and notably bypasses the earlier fix for CVE-2026-14257, so users who already applied that patch remain vulnerable. Because brace-expansion is almost always pulled in as a transitive dependency (e.g., via minimatch), the affected population is broad across the Node.js ecosystem, though only applications that feed untrusted input into the library are practically exploitable. No in-the-wild exploitation is currently known; a public advisory (GHSA-rgw5-rvv9-x895) is available and EPSS estimates a 0.6% chance of exploitation within 30 days.
What to do: Upgrade brace-expansion to 1.1.18, 2.1.4, 3.0.6, or 5.0.9 depending on your major version branch, and re-run npm audit or a lockfile scan to locate transitive copies — patching CVE-2026-14257 alone is not sufficient. Where upgrading is not immediately possible, validate or length-limit user-supplied patterns before passing them to expand(), and prioritize remediation for internet-facing services that process untrusted glob-like strings.
| juliangruber brace-expansion | all versions before 1.1.18, 2.1.4, 3.0.6, and 5.0.9 (1.x < 1.1.18, 2.x < 2.1.4, 3.x < 3.0.6, 5.x < 5.0.9) |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.18, 2.1.4, 3.0.6, and 5.0.9, expand() does not apply maxLength while constructing comma-alternative intermediate arrays or padded sequences, allowing attacker-controlled input to exhaust memory or block the event loop. The fix for CVE-2026-14257 is bypassed by the vulnerability. This issue is fixed in versions 1.1.18, 2.1.4, 3.0.6, and 5.0.9.
- Vendors
- juliangruber
- Products
- brace-expansion
- Weakness
- CWE-400, CWE-770
- Vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
In the news0 stories
No ingested article mentions this CVE yet.