Description
The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.20, 2.1.6, 3.0.8, and 5.0.11, deeply nested brace groups cause expand_() to recurse once per nesting level at comma-member and single-set expansion sites, exhausting the native stack before output limits can apply and potentially terminating the Node.js process. expand_ performs uncontrolled recursion for nested brace alternatives and single-part sets. deeply nested brace groups supplied as an untrusted pattern. expand_ is affected. expand is affected. Comma members is affected. Single set is affected. native stack exhaustion during nested sub-expansion. process-terminating denial of service. This issue is fixed in versions 1.1.20, 2.1.6, 3.0.8, and 5.0.11.
Published: 2026-09-28
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via stack exhaustion
Action: Apply Patch
AI Analysis

Impact

The brace-expansion module builds strings using patterns that contain braces to generate combinatorial results. Prior to releases 1.1.20, 2.1.6, 3.0.8, and 5.0.11 the internal expand algorithm recurses once for each level of nested braces during comma‑member and single‑set expansions. When a malicious input contains deeply nested braces, this uncontrolled recursion can deplete the native call stack before any output size limits are enforced, causing the Node.js process to terminate. The vulnerability directly maps to resource exhaustion (CWE‑400), unchecked recursion limits (CWE‑674), and stack overflow (CWE‑770). Its CVSS score of 7.5 indicates a medium‑to‑high severity denial of service.

Affected Systems

The brace‑expansion package released by juliangruber is vulnerable for all versions prior to 1.1.20, 2.1.6, 3.0.8, and 5.0.11. Node.js applications that import this module and accept user‑supplied strings containing brace syntax, such as command‑line utilities, build scripts, and web services, are at risk.

Risk and Exploitability

An attacker who can supply a crafted nested‑brace pattern to any call of expand() can trigger the recursion attack without any special privileges or authentication. The EPSS score of less than 1% indicates a low probability of exploitation in the wild, and the vulnerability is not listed in the CISA KEV catalog, but the straightforward attack vector and medium‑high CVSS rating mean that deployed applications that accept uncontrolled brace expressions should treat this as a significant risk.

Generated by OpenCVE AI on September 30, 2026 at 04:28 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade brace‑expansion to 1.1.20 or later, 2.1.6 or later, 3.0.8 or later, or 5.0.11 or later.
  • Validate or sanitize input patterns before passing them to expand, rejecting patterns that exceed a safe nesting depth or length.
  • Implement process monitoring and automatic restart or alarm mechanisms to detect and recover from unexpected Node.js termination.

Generated by OpenCVE AI on September 30, 2026 at 04:28 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-qhr7-859c-m2p7 brace-expansion: DoS via uncontrolled recursion on nested brace groups causing stack exhaustion
History

Thu, 01 Oct 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Tue, 29 Sep 2026 13:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-770
References
Metrics threat_severity

None

threat_severity

Important


Mon, 28 Sep 2026 23:15:00 +0000

Type Values Removed Values Added
First Time appeared Juliangruber
Juliangruber brace-expansion
Vendors & Products Juliangruber
Juliangruber brace-expansion

Mon, 28 Sep 2026 21:00:00 +0000

Type Values Removed Values Added
Description The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.20, 2.1.6, 3.0.8, and 5.0.11, deeply nested brace groups cause expand_() to recurse once per nesting level at comma-member and single-set expansion sites, exhausting the native stack before output limits can apply and potentially terminating the Node.js process. expand_ performs uncontrolled recursion for nested brace alternatives and single-part sets. deeply nested brace groups supplied as an untrusted pattern. expand_ is affected. expand is affected. Comma members is affected. Single set is affected. native stack exhaustion during nested sub-expansion. process-terminating denial of service. This issue is fixed in versions 1.1.20, 2.1.6, 3.0.8, and 5.0.11.
Title brace-expansion: DoS via uncontrolled recursion on nested brace groups 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'}


Subscriptions

Juliangruber Brace-expansion
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-01T15:02:44.798Z

Reserved: 2026-09-28T20:11:16.659Z

Link: CVE-2026-102278

cve-icon Vulnrichment

Updated: 2026-10-01T15:02:40.899Z

cve-icon NVD

Status : Deferred

Published: 2026-09-28T21:17:16.517

Modified: 2026-10-01T15:17:25.593

Link: CVE-2026-102278

cve-icon Redhat

Severity : Important

Publid Date: 2026-09-28T20:57:09Z

Links: CVE-2026-102278 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-30T04:30:11Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-674

    Uncontrolled Recursion

  • CWE-770

    Allocation of Resources Without Limits or Throttling