Description
braces through 3.0.3 contains a stack overflow vulnerability in the recursive AST walkers that lack depth guards. Attackers can supply deeply nested brace patterns under the character limit to exhaust the call stack and terminate the Node.js process with an uncaught RangeError.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| micromatch | braces | ≤ 3.0.3 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | node-braces | No fix yet | — |
| Debian 13 | node-braces | No fix yet | — |
| Debian 12 | node-braces | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | node-braces | No fix yet | — |
| Ubuntu 26.04 LTS | node-braces | No fix yet | — |
| Ubuntu 24.04 LTS | node-braces | No fix yet | — |
| Ubuntu 22.04 LTS | node-braces | No fix yet | — |
| Ubuntu 20.04 LTS | node-braces | No fix yet | — |
Show 1 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 18.04 LTS | node-braces | No fix yet | — |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Tumbleweed | terragrunt | 1.2.1-1.1 | openSUSE-SU-2026:12352-1 |
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 3 | nodejs-nodemon +1 | No fix yet | — |
Wolfi
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Wolfi rolling | argo-workflows-ui-4.0 | 4.0.15-r0 | — |
| Wolfi rolling | jupyter-base-notebook | 7.6.3-r2 | — |
| Wolfi rolling | kubeflow-pipelines-frontend | 2.17.2-r16 | — |
| Wolfi rolling | langfuse-3-worker | 3.225.12-r5 | — |
| Wolfi rolling | nextcloud-server-33 | 33.0.10-r0 | — |
| Wolfi rolling | opensearch-dashboards-3 | 3.9.0-r3 | — |
| Wolfi rolling | prism | 5.16.0-r18 | — |
| Wolfi rolling | rancher-api-ui | 1.2.3-r15 | — |
| Wolfi rolling | renovate | 44.180.0-r0 | — |
| Wolfi rolling | saf | 1.7.0-r4 | — |
| Wolfi rolling | sqlpad | No fix yet | — |
| Wolfi rolling | thingsboard-tb-web-ui +1 | 4.4-r6 | — |
| Wolfi rolling | tileserver-gl | 5.6.0-r20 | — |
| Wolfi rolling | ts-patch | 4.0.1-r48 | — |
| Wolfi rolling | vitess-23 | 23.0.8-r1 | — |
| Wolfi rolling | vitess-24 | 24.0.5-r3 | — |
Public exploits
Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.
GitHub 3 repositories
-
canmenzo/cve-2026-93687-braces ★ 0 · Oct 23, 2026
Independent, measured check of CVE-2026-93687 (braces stack exhaustion): reproducible cold-process crash under the default 10000 maxLength, and what actually mitigates it.
-
BernydotJar/braces-security-backport ★ 0 · Oct 10, 2026
MIT-licensed braces 3.0.3 with reviewed CVE-2026-93687 depth backport; pinned consumption only
-
scastillo-jp/braces-fork ★ 0 · Sep 24, 2026
Temporary fork of braces with a minimal security patch for CVE-2026-93687, created only to validate dependency override behavior and Fortify/FoD detection before moving the fix to an official Bentobo…
Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.
Advisories 3
- WID-SEC-2026-4410 IBM App Connect Enterprise: Mehrere Schwachstellen BSI CERT-Bund (WID) · Nov 12, 2026
- WID-SEC-2026-4413 IBM QRadar SIEM (Log Source Management App): Mehrere Schwachstellen BSI CERT-Bund (WID) · Nov 8, 2026
- openSUSE-SU-2026:12352-1 terragrunt-1.2.1-1.1 on GA media SUSE / openSUSE Security Updates · Oct 31, 2026
References
- GitHub Issue #70 issue-tracking
- https://github.com/micromatch/braces product
- https://github.com/micromatch/braces/blob/3.0.3/lib/compile.js#L49-L53 technical-description
- https://github.com/micromatch/braces/blob/3.0.3/lib/expand.js#L102-L105 technical-description
- https://github.com/micromatch/braces/blob/3.0.3/lib/parse.js#L38-L40 technical-description
- VulnCheck Advisory: braces through 3.0.3 Stack Overflow via Deeply Nested Patterns third-party-advisory