Public mode

No access to your tenant or devices. Every item links to its source. What this means

Sources need attention Customize Public modeDiscuss ChangeIntel on Discord

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

Exploitation and risk

Source status

CISA KEV lists vulnerabilities known to be exploited. FIRST EPSS estimates the likelihood of exploitation in the next 30 days. An unavailable score does not mean zero risk.

Which CVEs have scores here?

This view includes predictions for CVE identifiers explicitly listed in public NuGet advisories. Microsoft release pages have their own prediction coverage. Check source status for the scope and latest checks.

No exploitation or prediction data is available here for these CVEs. This does not mean they are safe or unlikely to be exploited.

cve-program · CVE-2026-102278

Published

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.

Source published
28 Sep 2026 20:57:09 UTC
Source modified
1 Oct 2026 15:02:44 UTC
Saved here
23 Oct 2026 15:48:27 UTC
Source terms
CVE Program Terms of Use

Original source record · Cite this exact observation · Complete original publisher JSON

Source: cve-program · CVE Program Terms of Use. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.

CVSS 3.1 · 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

euvd · EUVD-2026-88555

Published

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.

Additional publisher context

EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON.

Original publisher date fields

datePublished: Sep 28, 2026, 8:57:09 PM

dateUpdated: Oct 1, 2026, 3:02:44 PM

30 related source bulletins · separate from aliases

RHSA-2026:92510: Red Hat Security Advisory: RHOAI 3.4.6 - Red Hat OpenShift AI

CVE-2023-54404 · CVE-2026-11822 · CVE-2026-11824 · CVE-2026-13717 · CVE-2026-16221 · CVE-2026-17106 · CVE-2026-18446 · CVE-2026-25681 · CVE-2026-26007 · CVE-2026-27136 · CVE-2026-33814 · CVE-2026-33818 · CVE-2026-39821 · CVE-2026-39834 · CVE-2026-41178 · CVE-2026-42502 · CVE-2026-45819 · CVE-2026-45820 · CVE-2026-56853 · CVE-2026-56858 · CVE-2026-56859 · CVE-2026-56860 · CVE-2026-56862 · CVE-2026-57516 · CVE-2026-59951 · CVE-2026-63209 · CVE-2026-63374 · CVE-2026-65898 · CVE-2026-67312 · CVE-2026-67314 · CVE-2026-67320 · CVE-2026-67321 · CVE-2026-69097 · CVE-2026-69153 · CVE-2026-73086 · CVE-2026-73088 · CVE-2026-73089 · CVE-2026-73643 · CVE-2026-75838 · CVE-2026-75899 · CVE-2026-75931 · CVE-2026-75975 · CVE-2026-76172 · CVE-2026-76844 · CVE-2026-77301 · CVE-2026-78679 · CVE-2026-82397 · CVE-2026-83663 · CVE-2026-84375 · CVE-2026-84445 · CVE-2026-85393 · CVE-2026-85525 · CVE-2026-87018 · CVE-2026-90711 · CVE-2026-91990 · CVE-2026-92599 · CVE-2026-93690 · CVE-2026-93749 · CVE-2026-94637 · CVE-2026-96640 · CVE-2026-96643 · CVE-2026-96644 · CVE-2026-96778 · CVE-2026-96804 · CVE-2026-97687 · CVE-2026-97689 · CVE-2026-102267 · CVE-2026-102271 · CVE-2026-102272 · CVE-2026-102276 · CVE-2026-102278 · CVE-2026-102282 · CVE-2026-104150 · CVE-2026-104851 · CVE-2026-105922 · CVE-2026-106445 · CVE-2026-106446 · CVE-2026-109156 · CVE-2026-109383 · CVE-2026-109527 · CVE-2026-109829 · CVE-2026-109869 · CVE-2026-109956 · CVE-2026-110856 · CVE-2026-110857 · CVE-2026-110858 · CVE-2026-110859 · CVE-2026-111064 · CVE-2026-111066 · CVE-2026-111497 · CVE-2026-112390 · CVE-2026-112391 · CVE-2026-112392 · CVE-2026-112397 · CVE-2026-112399 · CVE-2026-112400 · CVE-2026-112402 · CVE-2026-112404 · CVE-2026-112405 · CVE-2026-112893 · CVE-2026-112894 · CVE-2026-112895 · CVE-2026-112896 · CVE-2026-112897 · CVE-2026-112940 · CVE-2026-114145

RHSA-2026:92378: Red Hat Security Advisory: nodejs:24 security, bug fix, and enhancement update

CVE-2026-101911 · CVE-2026-102276 · CVE-2026-102277 · CVE-2026-102278 · CVE-2026-105481 · CVE-2026-105482 · CVE-2026-105483 · CVE-2026-106069 · CVE-2026-106071 · CVE-2026-106072 · CVE-2026-106073 · CVE-2026-106074 · CVE-2026-111497

RHSA-2026:96226: Red Hat Security Advisory: nodejs:24 security update

CVE-2026-19534 · CVE-2026-87018 · CVE-2026-102276 · CVE-2026-102278 · CVE-2026-109383 · CVE-2026-109869 · CVE-2026-118764 · CVE-2026-119373 · CVE-2026-119374 · CVE-2026-119379

RHSA-2026:83703: Red Hat Security Advisory: OpenShift Container Platform 4.21.39 security and extras update

CVE-2026-11332 · CVE-2026-33814 · CVE-2026-44431 · CVE-2026-44432 · CVE-2026-46597 · CVE-2026-84375 · CVE-2026-102278

RHSA-2026:95591: Red Hat Security Advisory: Cluster Observability Operator - 1.5

CVE-2026-19534 · CVE-2026-27145 · CVE-2026-33818 · CVE-2026-39821 · CVE-2026-39822 · CVE-2026-39834 · CVE-2026-42504 · CVE-2026-56853 · CVE-2026-56858 · CVE-2026-56859 · CVE-2026-56860 · CVE-2026-56862 · CVE-2026-63209 · CVE-2026-75838 · CVE-2026-75899 · CVE-2026-75931 · CVE-2026-75975 · CVE-2026-76172 · CVE-2026-77301 · CVE-2026-82417 · CVE-2026-84292 · CVE-2026-84304 · CVE-2026-84375 · CVE-2026-84445 · CVE-2026-84961 · CVE-2026-85152 · CVE-2026-87018 · CVE-2026-102276 · CVE-2026-102278 · CVE-2026-109383 · CVE-2026-109829 · CVE-2026-109855 · CVE-2026-109869 · CVE-2026-116591

RHSA-2026:89342: Red Hat Security Advisory: OpenShift Container Platform 4.20.44 security and extras update

CVE-2026-33814 · CVE-2026-102278

RHSA-2026:74161: Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update

CVE-2026-102276 · CVE-2026-102277 · CVE-2026-102278

RHSA-2026:94612: Red Hat Security Advisory: Red Hat Edge Manager Version 1.2.2 Security Update

CVE-2026-73501 · CVE-2026-73502 · CVE-2026-77354 · CVE-2026-84445 · CVE-2026-88031 · CVE-2026-92615 · CVE-2026-102276 · CVE-2026-102278

RHSA-2026:89656: Red Hat Security Advisory: OpenShift Container Platform 4.19.53 security and extras update

CVE-2026-33814 · CVE-2026-46597 · CVE-2026-102278

RHSA-2026:73856: Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

CVE-2026-102278

RHSA-2026:92376: Red Hat Security Advisory: nodejs:24 security, bug fix, and enhancement update

CVE-2026-101911 · CVE-2026-102276 · CVE-2026-102277 · CVE-2026-102278 · CVE-2026-105481 · CVE-2026-105482 · CVE-2026-105483 · CVE-2026-106069 · CVE-2026-106071 · CVE-2026-106072 · CVE-2026-106073 · CVE-2026-106074 · CVE-2026-111497

RHSA-2026:94608: Red Hat Security Advisory: Red Hat Edge Manager Version 1.2.2 Security Update

CVE-2026-73501 · CVE-2026-73502 · CVE-2026-77354 · CVE-2026-84445 · CVE-2026-88031 · CVE-2026-92615 · CVE-2026-102276 · CVE-2026-102278

RHSA-2026:96234: Red Hat Security Advisory: nodejs:22 security, bug fix, and enhancement update

CVE-2026-87018 · CVE-2026-102276 · CVE-2026-102278 · CVE-2026-105482 · CVE-2026-106069 · CVE-2026-109383 · CVE-2026-109869

openSUSE-SU-2026:22111-1: Security update for pi-coding-agent

CVE-2026-102276 · CVE-2026-102277 · CVE-2026-102278 · CVE-2026-84890 · CVE-2026-84933 · CVE-2026-84947 · CVE-2026-84961 · CVE-2026-85008 · CVE-2026-85014 · CVE-2026-85024 · CVE-2026-85152

RHSA-2026:95360: Red Hat Security Advisory: Red Hat build of Cryostat security update

CVE-2026-33818 · CVE-2026-39834 · CVE-2026-46603 · CVE-2026-46604 · CVE-2026-49978 · CVE-2026-56858 · CVE-2026-56862 · CVE-2026-59879 · CVE-2026-78669 · CVE-2026-82417 · CVE-2026-83663 · CVE-2026-84445 · CVE-2026-88031 · CVE-2026-90711 · CVE-2026-91135 · CVE-2026-94637 · CVE-2026-102276 · CVE-2026-102278 · CVE-2026-106445 · CVE-2026-106446

RHSA-2026:73914: Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

CVE-2026-102278

openSUSE-SU-2026:11967-1: pi-coding-agent-1.0.0-1.1 on GA media

CVE-2026-102277 · CVE-2026-102278

RHSA-2026:92136: Red Hat Security Advisory: A Subscription Management tool for finding and reporting Red Hat product usage

CVE-2026-33245 · CVE-2026-93749 · CVE-2026-102276 · CVE-2026-102278 · CVE-2026-102422 · CVE-2026-104861 · CVE-2026-111064 · CVE-2026-111066

RHSA-2026:96094: Red Hat Security Advisory: nodejs22 security update

CVE-2026-87018 · CVE-2026-102276 · CVE-2026-102278 · CVE-2026-105482 · CVE-2026-106069 · CVE-2026-109383 · CVE-2026-109829 · CVE-2026-109869

RHSA-2026:92578: Red Hat Security Advisory: General availability of the satellite/iop-remediations-rhel9 container image

CVE-2026-9496 · CVE-2026-90711 · CVE-2026-97057 · CVE-2026-102276 · CVE-2026-102278

RHSA-2026:74167: Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

CVE-2026-102276 · CVE-2026-102277 · CVE-2026-102278

RHSA-2026:95081: Red Hat Security Advisory: Cluster Observability Operator - 1.5

CVE-2026-19534 · CVE-2026-27145 · CVE-2026-33818 · CVE-2026-39821 · CVE-2026-39822 · CVE-2026-39834 · CVE-2026-42504 · CVE-2026-56853 · CVE-2026-56858 · CVE-2026-56859 · CVE-2026-56860 · CVE-2026-56862 · CVE-2026-63209 · CVE-2026-75838 · CVE-2026-75899 · CVE-2026-75931 · CVE-2026-75975 · CVE-2026-76172 · CVE-2026-77301 · CVE-2026-82417 · CVE-2026-84292 · CVE-2026-84304 · CVE-2026-84375 · CVE-2026-84445 · CVE-2026-84961 · CVE-2026-85152 · CVE-2026-87018 · CVE-2026-102276 · CVE-2026-102278 · CVE-2026-109383 · CVE-2026-109829 · CVE-2026-109855 · CVE-2026-109869

RHSA-2026:92584: Red Hat Security Advisory: General availability of the satellite/iop-remediations-rhel9 container image

CVE-2026-9496 · CVE-2026-90711 · CVE-2026-97057 · CVE-2026-102276 · CVE-2026-102278

RHSA-2026:96236: Red Hat Security Advisory: nodejs-nodemon security update

CVE-2026-102276 · CVE-2026-102278

RHSA-2026:96088: Red Hat Security Advisory: nodejs24 security, bug fix, and enhancement update

CVE-2026-87018 · CVE-2026-102276 · CVE-2026-102278 · CVE-2026-105482 · CVE-2026-105483 · CVE-2026-106069 · CVE-2026-109383 · CVE-2026-109829 · CVE-2026-109869

RHSA-2026:73916: Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

CVE-2026-102278

RHSA-2026:89199: Red Hat Security Advisory: OpenShift Container Platform 4.22.20 security and extras update

CVE-2026-33814 · CVE-2026-85781 · CVE-2026-102278

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

CVE-2026-102278

RHSA-2026:74168: Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update

CVE-2026-102276 · CVE-2026-102277 · CVE-2026-102278

RHSA-2026:91967: Red Hat Security Advisory: A Subscription Management tool for finding and reporting Red Hat product usage

CVE-2026-33245 · CVE-2026-93749 · CVE-2026-102276 · CVE-2026-102278 · CVE-2026-102422 · CVE-2026-104861 · CVE-2026-111064 · CVE-2026-111066

Source published
Sep 28, 2026, 8:57:09 PM (timezone not stated)
Source modified
Oct 1, 2026, 3:02:44 PM (timezone not stated)
Saved here
11 Nov 2026 05:29:02 UTC
Source terms
ENISA EUVD · source terms and attribution apply

Original source record · Cite this exact observation · Complete original publisher JSON

Source: euvd · ENISA EUVD · source terms and attribution apply. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.

EUVD CVSS 3.1 · 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

nvd · CVE-2026-102278

Published

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.

Additional publisher context

NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON.

Source analysis status: Deferred

Weakness classifications: CWE-400 · CWE-674

Original publisher date fields

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

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

Source published
28 Sep 2026 21:17:16 UTC
Source modified
1 Oct 2026 15:17:25 UTC
Saved here
25 Oct 2026 04:17:26 UTC
Source terms
NIST NVD usage terms; underlying source attribution retained

Original source record · Cite this exact observation · Complete original publisher JSON

Source: nvd · NIST NVD usage terms; underlying source attribution retained. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.

CVSS 3.1 · [email protected] · Secondary · 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

osv · GHSA-qhr7-859c-m2p7

Published

### Summary `expand_()` recurses once per level of brace *nesting*. Deeply nested input exhausts the native stack and crashes the process. This is distinct from CVE-2026-14257 / GHSA-mh99-v99m-4gvg, which made the *tail* iterative (recursion on `m.post`, driven by how many groups are chained). Nesting depth drives a different recursion that the tail fix never touched, so the documented constant-stack-depth guarantee only ever covered chained input, not nested input. It is also distinct from GHSA-6j4f-fj2g-mc7p, which fixed recursion in `parseCommaParts()`. Both payloads below still crash with that fix applied. ### Two recursion sites **Comma members.** Each alternative of a brace set is expanded by a recursive call, so nesting a set inside every alternative recurses once per level: ```js expand('{a,'.repeat(4000) + 'z' + '}'.repeat(4000)) // RangeError: Maximum call stack size exceeded ``` Crashes at depth 3,907 - about **15.6 KB** of input. **Single set.** A brace set whose body parses to a single part is expanded by a recursive call before being re-wrapped (`x{{a,b}}y` -> `x{a}y x{b}y`), which recurses once per nesting level: ```js expand('{'.repeat(3200) + 'a,b' + '}'.repeat(3200)) // RangeError: Maximum call stack size exceeded ``` Crashes at depth 3,125 - about **6.25 KB** of input. This is the cheapest stack-exhaustion payload known against this package: roughly a quarter the input of GHSA-6j4f-fj2g-mc7p (29 KB), and about a tenth of minimatch's `MAX_PATTERN_LENGTH` (65,536). ### Why `max` and `maxLength` do not help Both crashes happen while recursing into sub-expansions, before the result set grows. The payloads produce almost no output - the single-set case yields 2 results - so neither bound is ever the limiter. `expand(payload, { max: 1, maxLength: 1 })` still overflows. ### Impact Any application passing an untrusted string to `expand()`, directly or through `minimatch` / `glob` as a user-supplied glob pattern, can be crashed. In Node a `RangeError` the application does not catch terminates the process, so a server globbing user input is exposed to remote unauthenticated denial of service. Availability only. No code execution, no data exposure. ### Affected versions Verified affected on 1.1.18, 2.1.4, 3.0.6 and 5.0.9, at near-identical depths on every line (single set: 3,125 on all four; comma members: 3,907-4,102). Not a regression from any recent fix - the gap predates them. ### Patch A `maxDepth` bound (default `EXPANSION_MAX_DEPTH`) is threaded through `expand_()`. Past the cap a group is treated as non-expanding and returned literally, which is how the parser already handles a group that cannot expand. This matches the existing `max` / `maxLength` caps, which truncate rather than throw, so `expand()` continues never to throw on any input. The default sits far above any realistic nesting depth and well below the crash threshold.

Source published
29 Sep 2026 23:45:17 UTC
Source modified
30 Sep 2026 00:00:04 UTC
Saved here
24 Oct 2026 13:17:17 UTC
Source terms
GitHub Advisory Database · CC-BY-4.0

Original source record · Cite this exact observation · Complete original publisher JSON

Source: osv · GitHub Advisory Database · CC-BY-4.0. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.

CVSS_V3 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Publisher rating · HIGH

ChangeIntel

An IT change radar: releases, security, known issues, retirements, documentation changes, and service status from public sources. Every item links to supporting evidence; dates and statuses can change after they are read.

Sources read 12 Nov 14:22 UTC · 274 of 275 readable · 272 fully read · documentation 469/469 current