CVE-2026-102278 brace-expansion: DoS via uncontrolled recursion on nested brace groups causing stack exhaustion

High 7.5 Published Updated

Attackers can cause Node.js process termination via stack exhaustion by supplying deeply nested brace patterns to the brace-expansion library.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2026-102278?

CVE-2026-102278 is a high-severity denial of service vulnerability in juliangruber brace-expansion, published on 28 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official 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.

Weakness: CWE-674, CWE-400

Which versions are affected by CVE-2026-102278?

8 open source packages ship an affected version, including brace-expansion.

PackageAffectedFixed in
brace-expansion npmAll versions1.1.20
brace-expansion npmAll versions1.1.20
brace-expansion npmFrom 2.0.02.1.6
brace-expansion npmFrom 2.0.02.1.6
brace-expansion npmFrom 3.0.03.0.8
brace-expansion npmFrom 3.0.03.0.8
2 more packages
brace-expansion npmFrom 4.0.05.0.11
brace-expansion npmFrom 4.0.05.0.11
Linux distribution packages (27)
nodejs22 Red Hat:hummingbird:1All versions0:22.23.3-2.3.2.1.hum1
nodejs22-bin Red Hat:hummingbird:1All versions0:22.23.3-2.3.2.1.hum1
nodejs22-devel Red Hat:hummingbird:1All versions0:22.23.3-2.3.2.1.hum1
nodejs22-docs Red Hat:hummingbird:1All versions0:22.23.3-2.3.2.1.hum1
nodejs22-full-i18n Red Hat:hummingbird:1All versions0:22.23.3-2.3.2.1.hum1
nodejs22-libs Red Hat:hummingbird:1All versions0:22.23.3-2.3.2.1.hum1
nodejs22-npm Red Hat:hummingbird:1All versions0:10.9.9-1.22.23.3.2.3.2.1.hum1
nodejs22-npm-bin Red Hat:hummingbird:1All versions0:22.23.3-2.3.2.1.hum1
nodejs24 Red Hat:hummingbird:1All versions0:24.21.0-1.1.hum1
nodejs24-bin Red Hat:hummingbird:1All versions0:24.21.0-1.1.hum1
nodejs24-devel Red Hat:hummingbird:1All versions0:24.21.0-1.1.hum1
nodejs24-docs Red Hat:hummingbird:1All versions0:24.21.0-1.1.hum1
nodejs24-full-i18n Red Hat:hummingbird:1All versions0:24.21.0-1.1.hum1
nodejs24-libs Red Hat:hummingbird:1All versions0:24.21.0-1.1.hum1
nodejs24-npm Red Hat:hummingbird:1All versions0:11.19.0-1.24.21.0.1.1.hum1
nodejs24-npm-bin Red Hat:hummingbird:1All versions0:11.19.0-1.24.21.0.1.1.hum1
nodejs26 Red Hat:hummingbird:1All versions0:26.10.0-0.2.hum1
nodejs26-bin Red Hat:hummingbird:1All versions0:26.10.0-0.2.hum1
nodejs26-devel Red Hat:hummingbird:1All versions0:26.10.0-0.2.hum1
nodejs26-docs Red Hat:hummingbird:1All versions0:26.10.0-0.2.hum1
nodejs26-full-i18n Red Hat:hummingbird:1All versions0:26.10.0-0.2.hum1
nodejs26-libs Red Hat:hummingbird:1All versions0:26.10.0-0.2.hum1
nodejs26-npm Red Hat:hummingbird:1All versions0:11.19.1-1.26.10.0.0.2.hum1
nodejs26-npm-bin Red Hat:hummingbird:1All versions0:26.10.0-0.2.hum1
v8-12.4-devel Red Hat:hummingbird:1All versions0:12.4.254.21-1.22.23.3.2.3.2.1.hum1
v8-13.6-devel Red Hat:hummingbird:1All versions0:13.6.233.17-1.24.21.0.1.1.hum1
v8-14.6-devel Red Hat:hummingbird:1All versions0:14.6.202.34-1.26.10.0.0.2.hum1

How do I fix CVE-2026-102278?

Upgrade brace-expansion to a fixed version for your release line: 1.1.20, 2.1.6, 3.0.8 or 5.0.11.

Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.

Is CVE-2026-102278 being exploited?

There is no known exploitation of CVE-2026-102278 in the wild and no public exploit code.

Sources

Also known as AZL-105078, AZL-105092, AZL-105242, CLEANSTART-2026-DA12179, CLEANSTART-2026-DZ00497, CLEANSTART-2026-JT17760 and 58 more.

Is CVE-2026-102278 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free