CVE-2026-102276

brace-expansion: DoS via uncontrolled recursion in parseCommaParts causing stack exhaustion

Published Sep 28, 2026 CVSS 3.1 · 7.5 High EPSS < 1% KEV · Not listed
Description
The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.19, 2.1.5, 3.0.7, and 5.0.10, crafted brace patterns can exhaust the native stack in parseCommaParts because parseCommaParts recursively processes the remainder once per brace group and uses push.apply to pass every element of a very large comma-part array as a function argument. Patterns containing many comma-separated brace groups trigger the recursive path, while the large array triggers the argument-array path without deep recursion. These paths cause recursive and argument-array native stack exhaustion before max or maxLength can limit output, potentially terminating the Node.js process in a process-terminating denial of service. This issue is fixed in versions 1.1.19, 2.1.5, 3.0.7, and 5.0.10.

Analysis

AI-generated

Technical impact

The brace-expansion library contains a flaw in its parseCommaParts function that, when fed deeply nested or very large brace patterns, triggers uncontrolled recursion and large argument array expansion, a classic case of resource exhaustion. The excessive recursion leads to stack depth overflow, while the unbounded array expansion can exhaust system memory. This causes the Node.js process’s native call stack to overflow before any limit can be applied, resulting in process termination and a denial‑of‑service of the affected application.

Affected Systems

The vulnerability affects the open‑source brace‑expansion library maintained by juliangruber. Versions prior to 1.1.19, 2.1.5, 3.0.7, and 5.0.10 are impacted. Any Node.js application that imports this library during runtime could be exposed.

Risk and Exploitability

The CVSS score of 7.5 indicates a high severity risk, and the EPSS score is < 1%, and the vulnerability is not listed in CISA’s KEV catalog. Attackers could trigger the DoS by supplying crafted brace patterns through any interface that passes user input to the library. The impact is local to the host running the Node.js process; there is no remote code execution or privilege escalation threat. If the library is used in a publicly exposed service, the denial of service could affect availability for all users of that service.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade brace-expansion to version 5.0.10 or later (this releases include the bug fix for all affected releases).
  • Run npm audit or yarn audit to confirm that no vulnerable artifacts remain.
  • If an upgrade cannot be performed immediately, limit or sanitize brace patterns passed to the library, for example by restricting input length or rejecting inputs that contain more than a safe number of comma‑separated groups.

Generated by OpenCVE AI on September 30, 2026 at 05:00 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-6j4f-fj2g-mc7p brace-expansion: DoS via uncontrolled recursion in parseCommaParts causing stack exhaustion
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Juliangruber
Juliangruber brace-expansion
Vendors & Products Juliangruber
Juliangruber brace-expansion
Type Values Removed Values Added
Description The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.19, 2.1.5, 3.0.7, and 5.0.10, crafted brace patterns can exhaust the native stack in parseCommaParts because parseCommaParts recursively processes the remainder once per brace group and uses push.apply to pass every element of a very large comma-part array as a function argument. Patterns containing many comma-separated brace groups trigger the recursive path, while the large array triggers the argument-array path without deep recursion. These paths cause recursive and argument-array native stack exhaustion before max or maxLength can limit output, potentially terminating the Node.js process in a process-terminating denial of service. This issue is fixed in versions 1.1.19, 2.1.5, 3.0.7, and 5.0.10.
Title brace-expansion: DoS via uncontrolled recursion in parseCommaParts causing stack exhaustion
Weaknesses CWE-400
CWE-674
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-674

    Uncontrolled Recursion

  • CWE-770

    Allocation of Resources Without Limits or Throttling

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Sep 29, 2026, 1:38 PM
Reserved
Sep 28, 2026, 8:11 PM
Status
Deferred
Published
Sep 28, 2026, 9:17 PM
Modified
Sep 30, 2026, 7:57 PM
Severity
Important
Public date
Sep 28, 2026, 8:50 PM