{"id":"CVE-2026-102278","summary":"brace-expansion: DoS via uncontrolled recursion on nested brace groups causing stack exhaustion","details":"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.","aliases":["GHSA-qhr7-859c-m2p7"],"modified":"2026-09-30T03:47:05.652380991Z","published":"2026-09-28T20:57:09.850Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/102xxx/CVE-2026-102278.json","cna_assigner":"GitHub_M","cwe_ids":["CWE-400","CWE-674"]},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/102xxx/CVE-2026-102278.json"},{"type":"ADVISORY","url":"https://github.com/juliangruber/brace-expansion/security/advisories/GHSA-qhr7-859c-m2p7"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-102278"},{"type":"FIX","url":"https://github.com/juliangruber/brace-expansion/commit/1efee7c397c191da6287a78ec19512476a966a7b"},{"type":"FIX","url":"https://github.com/juliangruber/brace-expansion/commit/935d78f32f335b2ff76578e5c5e877d31ae9888c"},{"type":"FIX","url":"https://github.com/juliangruber/brace-expansion/commit/de84f144e9816f30e25fc8179e2e1249ab6df0db"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/juliangruber/brace-expansion","events":[{"introduced":"6a39bdddcf944374b475d99b0e8292d3727c7ebe"},{"introduced":"b01a637b0578a7c59acc7d8386f11f8d0710b512"},{"introduced":"0b6a022491103b806770bc037654744bef3e63be"},{"introduced":"0"},{"fixed":"82479277b90f2f86263e946f9ff89689b3734568"},{"fixed":"8bebb261fd9249c3bac705eea15d06c4ea788d5e"},{"fixed":"5a5c07b25ea84a899322ebb820336260277cbe90"},{"fixed":"c6513ad31e08edb56dc414a629e39cba724b7548"},{"fixed":"1efee7c397c191da6287a78ec19512476a966a7b"},{"fixed":"935d78f32f335b2ff76578e5c5e877d31ae9888c"},{"fixed":"de84f144e9816f30e25fc8179e2e1249ab6df0db"}],"database_specific":{"extracted_events":[{"introduced":"4.0.0"},{"fixed":"5.0.11"},{"introduced":"3.0.0"},{"fixed":"3.0.8"},{"introduced":"2.0.0"},{"fixed":"2.1.6"},{"introduced":"0"},{"fixed":"1.1.20"}],"source":["AFFECTED_FIELD","REFERENCES"]}}],"versions":["v3.0.7","v2.1.5","v1.1.19","v5.0.10","v3.0.6","v2.1.4","v1.1.18","v5.0.9","v1.1.17","v2.1.3","v1.1.16","v2.1.2","v3.0.4","v3.0.3","v3.0.2","v5.0.8","v2.1.1","v1.1.15","v5.0.7","v1.1.14","v2.1.0","v5.0.6","v2.0.3","v1.1.13","v3.0.1","v2.0.2","v1.1.12","v5.0.5","v5.0.4","v5.0.3","v5.0.2","v4.0.1","v1.1.11","v2.0.1","v3.0.0","v4.0.0","v2.0.0","v1.1.10","v1.1.9","v1.1.8","v1.1.7","v1.1.6","v1.1.5","v1.1.4","v1.1.3","v1.1.2","v1.1.1","v1.1.0","v1.0.1","v1.0.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-102278.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}]}