brace-expansion: Quadratic-time expansion of the `{a},b}` rewrite causes CPU denial of service
CVE-2026-102277 is fixed in 12 products on 1 platform, first by DEBIAN-CVE-2026-102277, released October 9, 2026. It is not reported as exploited. Patch Radar priority: High.
The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.21, 2.1.7, 3.0.9, and 5.0.12, the expand function handles untrusted {a},b}-shaped patterns with many trailing closing braces by restarting its scan once for each trailing closing brace. The successive full-input rescans with linear working-string growth cause quadratic CPU time and memory pressure that can block the Node.js event loop. The process eventually recovers, making the impact a recoverable CPU denial of service. This issue is fixed in versions 1.1.21, 2.1.7, 3.0.9, and 5.0.12.
Where it's fixed
| Product | Fixed in | Fix | Released |
|---|---|---|---|
| Linux | |||
| node-brace-expansion · Debian 14 | 2.1.7+~1.1.2-1 | DEBIAN-CVE-2026-102277 | Oct 9, 2026 |
| nodejs · RHEL 8 | 1:24.22.1-1.module+el8.10.0+25218+d9e131cb | RHSA-2026:92376 | Oct 30, 2026 |
| nodejs · RHEL 9 | 1:24.22.1-3.module+el9.8.0+25216+afa2a4a4 | RHSA-2026:92378 | Oct 30, 2026 |
| nodejs · almalinux 8 | 1:24.22.1-1.module_el8.10.0+4331+0683c9c1 | ALSA-2026:92376 | Nov 7, 2026 |
| nodejs · almalinux 9 | 1:24.22.1-3.module_el9.8.0+333+788f3075 | ALSA-2026:92378 | Nov 7, 2026 |
| nodejs · ol 8 | 1:24.21.0-1.0.1.module+el8.10.0+91090+8c7726c5 | ELSA-2026-92376 | Nov 7, 2026 |
| nodejs · ol 9 | 1:24.21.0-1.0.1.module+el9.8.0+91091+c060d8b4 | ELSA-2026-92378 | Nov 7, 2026 |
| nodejs · rocky 9 | 1:24.22.1-3.module+el9.8.0+40401+e24b8c95 | RLSA-2026:92378 | Nov 7, 2026 |
| nodejs-devel · RHEL 8 | 1:24.22.1-1.module+el8.10.0+25218+d9e131cb | RHSA-2026:92376 | Oct 30, 2026 |
| nodejs-devel · RHEL 9 | 1:24.22.1-3.module+el9.8.0+25216+afa2a4a4 | RHSA-2026:92378 | Oct 30, 2026 |
| nodejs-devel · almalinux 8 | 1:24.22.1-1.module_el8.10.0+4331+0683c9c1 | ALSA-2026:92376 | Nov 7, 2026 |
| nodejs-devel · almalinux 9 | 1:24.22.1-3.module_el9.8.0+333+788f3075 | ALSA-2026:92378 | Nov 7, 2026 |
| nodejs-devel · ol 8 | 1:24.21.0-1.0.1.module+el8.10.0+91090+8c7726c5 | ELSA-2026-92376 | Nov 7, 2026 |
| nodejs-devel · ol 9 | 1:24.21.0-1.0.1.module+el9.8.0+91091+c060d8b4 | ELSA-2026-92378 | Nov 7, 2026 |
| nodejs-docs · RHEL 8 | 1:24.22.1-1.module+el8.10.0+25218+d9e131cb | RHSA-2026:92376 | Oct 30, 2026 |
| nodejs-docs · RHEL 9 | 1:24.22.1-3.module+el9.8.0+25216+afa2a4a4 | RHSA-2026:92378 | Oct 30, 2026 |
| nodejs-docs · almalinux 8 | 1:24.22.1-1.module_el8.10.0+4331+0683c9c1 | ALSA-2026:92376 | Nov 7, 2026 |
| nodejs-docs · almalinux 9 | 1:24.22.1-3.module_el9.8.0+333+788f3075 | ALSA-2026:92378 | Nov 7, 2026 |
| nodejs-docs · ol 8 | 1:24.21.0-1.0.1.module+el8.10.0+91090+8c7726c5 | ELSA-2026-92376 | Nov 7, 2026 |
| nodejs-docs · ol 9 | 1:24.21.0-1.0.1.module+el9.8.0+91091+c060d8b4 | ELSA-2026-92378 | Nov 7, 2026 |
| nodejs-full-i18n · RHEL 8 | 1:24.22.1-1.module+el8.10.0+25218+d9e131cb | RHSA-2026:92376 | Oct 30, 2026 |
| nodejs-full-i18n · RHEL 9 | 1:24.22.1-3.module+el9.8.0+25216+afa2a4a4 | RHSA-2026:92378 | Oct 30, 2026 |
| nodejs-full-i18n · almalinux 8 | 1:24.22.1-1.module_el8.10.0+4331+0683c9c1 | ALSA-2026:92376 | Nov 7, 2026 |
| nodejs-full-i18n · almalinux 9 | 1:24.22.1-3.module_el9.8.0+333+788f3075 | ALSA-2026:92378 | Nov 7, 2026 |
| nodejs-full-i18n · ol 8 | 1:24.21.0-1.0.1.module+el8.10.0+91090+8c7726c5 | ELSA-2026-92376 | Nov 7, 2026 |
| nodejs-full-i18n · ol 9 | 1:24.21.0-1.0.1.module+el9.8.0+91091+c060d8b4 | ELSA-2026-92378 | Nov 7, 2026 |
| nodejs-libs · RHEL 8 | 1:24.22.1-1.module+el8.10.0+25218+d9e131cb | RHSA-2026:92376 | Oct 30, 2026 |
| nodejs-libs · RHEL 9 | 1:24.22.1-3.module+el9.8.0+25216+afa2a4a4 | RHSA-2026:92378 | Oct 30, 2026 |
| nodejs-libs · almalinux 8 | 1:24.22.1-1.module_el8.10.0+4331+0683c9c1 | ALSA-2026:92376 | Nov 7, 2026 |
| nodejs-libs · almalinux 9 | 1:24.22.1-3.module_el9.8.0+333+788f3075 | ALSA-2026:92378 | Nov 7, 2026 |
| nodejs-libs · ol 8 | 1:24.21.0-1.0.1.module+el8.10.0+91090+8c7726c5 | ELSA-2026-92376 | Nov 7, 2026 |
| nodejs-libs · ol 9 | 1:24.21.0-1.0.1.module+el9.8.0+91091+c060d8b4 | ELSA-2026-92378 | Nov 7, 2026 |
| nodejs-nodemon · RHEL 8 | 0:3.1.14-2.module+el8.10.0+24711+b610b202 | RHSA-2026:92376 | Oct 30, 2026 |
| nodejs-nodemon · RHEL 9 | 0:3.1.14-3.module+el9.8.0+24708+e71d2e1d | RHSA-2026:92378 | Oct 30, 2026 |
| nodejs-nodemon · almalinux 8 | 3.1.14-2.module_el8.10.0+4250+09238ed4 | ALSA-2026:92376 | Nov 7, 2026 |
| nodejs-nodemon · almalinux 9 | 3.1.14-3.module_el9.8.0+292+f4eaf8b2 | ALSA-2026:92378 | Nov 7, 2026 |
| nodejs-nodemon · ol 8 | 0:3.1.14-2.module+el8.10.0+91054+4b1a799c | ELSA-2026-92376 | Nov 7, 2026 |
| nodejs-nodemon · ol 9 | 0:3.1.14-3.module+el9.8.0+91009+5d530ccd | ELSA-2026-92378 | Nov 7, 2026 |
| nodejs-nodemon · rocky 8 | 0:3.1.14-2.module+el8.10.0+40277+b1b3f89e | RLSA-2026:92376 | Nov 7, 2026 |
| nodejs-nodemon · rocky 9 | 0:3.1.14-3.module+el9.8.0+40281+14cc6568 | RLSA-2026:92378 | Nov 7, 2026 |
| nodejs-packaging · RHEL 8 | 0:2021.06-6.module+el8.10.0+24711+b610b202 | RHSA-2026:92376 | Oct 30, 2026 |
| nodejs-packaging · RHEL 9 | 0:2021.06-6.module+el9.8.0+24708+e71d2e1d | RHSA-2026:92378 | Oct 30, 2026 |
| nodejs-packaging · almalinux 8 | 2021.06-6.module_el8.10.0+4086+70facd4a | ALSA-2026:92376 | Nov 7, 2026 |
| nodejs-packaging · almalinux 9 | 2021.06-6.module_el9.7.0+209+ecf6523e | ALSA-2026:92378 | Nov 7, 2026 |
| nodejs-packaging · ol 8 | 0:2021.06-6.module+el8.10.0+91054+4b1a799c | ELSA-2026-92376 | Nov 7, 2026 |
| nodejs-packaging · ol 9 | 0:2021.06-6.module+el9.8.0+91009+5d530ccd | ELSA-2026-92378 | Nov 7, 2026 |
| nodejs-packaging · rocky 8 | 0:2021.06-6.module+el8.10.0+40048+6d99f608 | RLSA-2026:92376 | Nov 7, 2026 |
| nodejs-packaging · rocky 9 | 0:2021.06-6.module+el9.7.0+40165+d075e3f2 | RLSA-2026:92378 | Nov 7, 2026 |
| nodejs-packaging-bundler · RHEL 8 | 0:2021.06-6.module+el8.10.0+24711+b610b202 | RHSA-2026:92376 | Oct 30, 2026 |
| nodejs-packaging-bundler · RHEL 9 | 0:2021.06-6.module+el9.8.0+24708+e71d2e1d | RHSA-2026:92378 | Oct 30, 2026 |
| nodejs-packaging-bundler · almalinux 8 | 2021.06-6.module_el8.10.0+4086+70facd4a | ALSA-2026:92376 | Nov 7, 2026 |
| nodejs-packaging-bundler · almalinux 9 | 2021.06-6.module_el9.7.0+209+ecf6523e | ALSA-2026:92378 | Nov 7, 2026 |
| nodejs-packaging-bundler · ol 8 | 0:2021.06-6.module+el8.10.0+91054+4b1a799c | ELSA-2026-92376 | Nov 7, 2026 |
| nodejs-packaging-bundler · ol 9 | 0:2021.06-6.module+el9.8.0+91009+5d530ccd | ELSA-2026-92378 | Nov 7, 2026 |
| npm · RHEL 8 | 1:11.19.1-1.24.22.1.1.module+el8.10.0+25218+d9e131cb | RHSA-2026:92376 | Oct 30, 2026 |
| npm · RHEL 9 | 1:11.19.1-1.24.22.1.3.module+el9.8.0+25216+afa2a4a4 | RHSA-2026:92378 | Oct 30, 2026 |
| npm · almalinux 8 | 1:11.19.1-1.24.22.1.1.module_el8.10.0+4331+0683c9c1 | ALSA-2026:92376 | Nov 7, 2026 |
| npm · almalinux 9 | 1:11.19.1-1.24.22.1.3.module_el9.8.0+333+788f3075 | ALSA-2026:92378 | Nov 7, 2026 |
| npm · ol 8 | 1:11.19.0-1.24.21.0.1.0.1.module+el8.10.0+91090+8c7726c5 | ELSA-2026-92376 | Nov 7, 2026 |
| npm · ol 9 | 1:11.19.0-1.24.21.0.1.0.1.module+el9.8.0+91091+c060d8b4 | ELSA-2026-92378 | Nov 7, 2026 |
| pi-coding-agent · opensuse-leap 16.0 | 1.0.4-bp160.1.1 | OPENSUSE-SU-2026:22111-1 | Nov 7, 2026 |
| v8-13.6-devel · RHEL 8 | 3:13.6.233.17-1.24.22.1.1.module+el8.10.0+25218+d9e131cb | RHSA-2026:92376 | Oct 30, 2026 |
| v8-13.6-devel · RHEL 9 | 3:13.6.233.17-1.24.22.1.3.module+el9.8.0+25216+afa2a4a4 | RHSA-2026:92378 | Oct 30, 2026 |
| v8-13.6-devel · almalinux 8 | 3:13.6.233.17-1.24.22.1.1.module_el8.10.0+4331+0683c9c1 | ALSA-2026:92376 | Nov 7, 2026 |
| v8-13.6-devel · almalinux 9 | 3:13.6.233.17-1.24.22.1.3.module_el9.8.0+333+788f3075 | ALSA-2026:92378 | Nov 7, 2026 |
| v8-13.6-devel · ol 8 | 3:13.6.233.17-1.24.21.0.1.0.1.module+el8.10.0+91090+8c7726c5 | ELSA-2026-92376 | Nov 7, 2026 |
| v8-13.6-devel · ol 9 | 3:13.6.233.17-1.24.21.0.1.0.1.module+el9.8.0+91091+c060d8b4 | ELSA-2026-92378 | Nov 7, 2026 |
Patch Radar data is free to use with attribution. Terms and how to credit it.
Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.