brace-expansion: DoS via unbounded intermediate arrays, bypassing the CVE-2026-14257 mitigation
The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.18, 2.1.4, 3.0.6, and 5.0.9, expand() does not apply maxLength while constructing comma-alternative intermediate arrays or padded sequences, allowing attacker-controlled input to exhaust memory or block the event loop. The fix for CVE-2026-14257 is bypassed by the vulnerability. This issue is fixed in versions 1.1.18, 2.1.4, 3.0.6, and 5.0.9.
- GHSA-rgw5-rvv9-x895
- ALSA-2026:52841
- ALSA-2026:54371
- ALSA-2026:54530
- ALSA-2026:55541
- ALSA-2026:55601
- ALSA-2026:55603
- ALSA-2026:58819
- RHSA-2026:50079
- RHSA-2026:50290
- RHSA-2026:50826
- RHSA-2026:52841
- RHSA-2026:54183
- RHSA-2026:54371
- RHSA-2026:54389
- RHSA-2026:54436
- RHSA-2026:54530
- RHSA-2026:55541
- RHSA-2026:55601
- RHSA-2026:55603
- Опубликовано
- 3 авг. 2026 г.
- Обновлено
- 5 авг. 2026 г.
- EPSS
- 0,6 % · 49-й процентиль
- CWE
- CWE-400
Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.
Инструменты для отчёта
Оценка срочности
30
Наблюдать
Пока низкий приоритет.
- CVSS
- 30 / 40 · 7.5 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 0 / 30 · 0,6 %
Решение CISA SSVC
- Эксплуатация
- proof of concept
- Автоматизируемо
- да
- Техническое влияние
- частичное
Vulnrichment: входные данные дерева решений CISA.
Оценка CNA и NVD
- NVD
- —
- CNA · GitHub_M
- 7,5
- NVD ещё не выставил свою оценку; показана оценка CNA.
Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.
Затронутые системы
| Вендор | Продукт | CPE |
|---|---|---|
| juliangruber | brace-expansion | cpe:2.3:a:juliangruber:brace-expansion |
Затронутые версии
Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.
- juliangruber brace-expansionдо 1.1.18
- juliangruber brace-expansion2.0.0 и новее · до 2.1.4
- juliangruber brace-expansion3.0.0 и новее · до 3.0.6
- juliangruber brace-expansion4.0.0 и новее · до 5.0.9
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (GitHub_M). Не зависят от анализа CPE в NVD и обычно опережают его.
juliangruber brace-expansion
- < 1.1.18, >= 2.0.0, < 2.1.4, >= 3.0.0, < 3.0.6, >= 4.0.0, < 5.0.9затронута
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| AlmaLinux:10 | nodejs | до 1:22.23.1-6.el10_2 | 1:22.23.1-6.el10_2 |
| AlmaLinux:10 | nodejs-devel | до 1:22.23.1-6.el10_2 | 1:22.23.1-6.el10_2 |
| AlmaLinux:10 | nodejs-docs | до 1:22.23.1-6.el10_2 | 1:22.23.1-6.el10_2 |
| AlmaLinux:10 | nodejs-full-i18n | до 1:22.23.1-6.el10_2 | 1:22.23.1-6.el10_2 |
| AlmaLinux:10 | nodejs-libs | до 1:22.23.1-6.el10_2 | 1:22.23.1-6.el10_2 |
| AlmaLinux:10 | nodejs-nodemon | до 3.1.14-3.el10_2 | 3.1.14-3.el10_2 |
| AlmaLinux:10 | nodejs-npm | до 1:10.9.8-1.22.23.1.6.el10_2 | 1:10.9.8-1.22.23.1.6.el10_2 |
| AlmaLinux:10 | nodejs24 | до 1:24.18.0-5.el10_2 | 1:24.18.0-5.el10_2 |
| AlmaLinux:10 | nodejs24-devel | до 1:24.18.0-5.el10_2 | 1:24.18.0-5.el10_2 |
| AlmaLinux:10 | nodejs24-docs | до 1:24.18.0-5.el10_2 | 1:24.18.0-5.el10_2 |
| AlmaLinux:10 | nodejs24-full-i18n | до 1:24.18.0-5.el10_2 | 1:24.18.0-5.el10_2 |
| AlmaLinux:10 | nodejs24-libs | до 1:24.18.0-5.el10_2 | 1:24.18.0-5.el10_2 |
| AlmaLinux:10 | nodejs24-npm | до 1:11.16.0-1.24.18.0.5.el10_2 | 1:11.16.0-1.24.18.0.5.el10_2 |
| AlmaLinux:8 | nodejs | до 1:24.18.0-3.module_el8.10.0+4250+09238ed4 | 1:24.18.0-3.module_el8.10.0+4250+09238ed4 |
| AlmaLinux:8 | nodejs | до 1:22.23.1-3.module_el8.10.0+4251+b427b8a5 | 1:22.23.1-3.module_el8.10.0+4251+b427b8a5 |
| AlmaLinux:8 | nodejs-devel | до 1:22.23.1-3.module_el8.10.0+4251+b427b8a5 | 1:22.23.1-3.module_el8.10.0+4251+b427b8a5 |
| AlmaLinux:8 | nodejs-devel | до 1:24.18.0-3.module_el8.10.0+4250+09238ed4 | 1:24.18.0-3.module_el8.10.0+4250+09238ed4 |
| AlmaLinux:8 | nodejs-docs | до 1:22.23.1-3.module_el8.10.0+4251+b427b8a5 | 1:22.23.1-3.module_el8.10.0+4251+b427b8a5 |
| AlmaLinux:8 | nodejs-docs | до 1:24.18.0-3.module_el8.10.0+4250+09238ed4 | 1:24.18.0-3.module_el8.10.0+4250+09238ed4 |
| AlmaLinux:8 | nodejs-full-i18n | до 1:22.23.1-3.module_el8.10.0+4251+b427b8a5 | 1:22.23.1-3.module_el8.10.0+4251+b427b8a5 |
| AlmaLinux:8 | nodejs-full-i18n | до 1:24.18.0-3.module_el8.10.0+4250+09238ed4 | 1:24.18.0-3.module_el8.10.0+4250+09238ed4 |
| AlmaLinux:8 | nodejs-libs | до 1:22.23.1-3.module_el8.10.0+4251+b427b8a5 | 1:22.23.1-3.module_el8.10.0+4251+b427b8a5 |
| AlmaLinux:8 | nodejs-libs | до 1:24.18.0-3.module_el8.10.0+4250+09238ed4 | 1:24.18.0-3.module_el8.10.0+4250+09238ed4 |
| AlmaLinux:8 | nodejs-nodemon | до 3.1.14-2.module_el8.10.0+4250+09238ed4 | 3.1.14-2.module_el8.10.0+4250+09238ed4 |
+96
Тот же продукт
juliangruber: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2026-102278brace-expansion: DoS via uncontrolled recursion on nested brace groups causing stack exhaustion30Наблюдать
- CVE-2026-102276brace-expansion: DoS via uncontrolled recursion in parseCommaParts causing stack exhaustion30Наблюдать
- CVE-2026-14257brace-expansion DoS via unbounded expansion length causing an out-of-memory process crash30Наблюдать
- CVE-2026-13149brace-expansion through 5.0.6 is vulnerable to denial of service.30Наблюдать
- CVE-2026-45149brace-expansion: Large numeric range defeats documented `max` DoS protection30Наблюдать
- CVE-2026-33750brace-expansion: Zero-step sequence causes process hang and memory exhaustion30Наблюдать
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| almalinux:nodejs | 1:24.18.0-3.module_el8.10.0+4250+09238ed4 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:nodejs-devel | 1:24.18.0-3.module_el8.10.0+4250+09238ed4 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:nodejs-docs | 1:24.18.0-3.module_el8.10.0+4250+09238ed4 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:nodejs-full-i18n | 1:24.18.0-3.module_el8.10.0+4250+09238ed4 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:nodejs-libs | 1:24.18.0-3.module_el8.10.0+4250+09238ed4 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:nodejs-nodemon | 3.1.14-3.el10_2 · AlmaLinux:10 | Реестр пакетов (OSV) |
| almalinux:nodejs-npm | 1:10.9.8-1.22.23.1.6.el10_2 · AlmaLinux:10 | Реестр пакетов (OSV) |
| almalinux:nodejs-packaging | 2021.06-6.module_el8.10.0+4086+70facd4a · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:nodejs-packaging-bundler | 2021.06-6.module_el8.10.0+4086+70facd4a · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:npm | 1:11.16.0-1.24.18.0.3.module_el8.10.0+4250+09238ed4 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:v8-12.4-devel | 3:12.4.254.21-1.22.23.1.3.module_el8.10.0+4251+b427b8a5 · AlmaLinux:8 | Реестр пакетов (OSV) |
| almalinux:v8-13.6-devel | 3:13.6.233.17-1.24.18.0.3.module_el8.10.0+4250+09238ed4 · AlmaLinux:8 | Реестр пакетов (OSV) |
| npm:brace-expansion | 1.1.18 | Реестр пакетов (OSV) |
| npm:brace-expansion | 2.1.4 | Реестр пакетов (OSV) |
| npm:brace-expansion | 3.0.6 | Реестр пакетов (OSV) |
| npm:brace-expansion | 5.0.9 | Реестр пакетов (OSV) |
| red hat:grafana12.4 | 0:12.4.6-0.4.hum1 · Red Hat:hummingbird:1 | Реестр пакетов (OSV) |
| red hat:grafana13.1 | 0:13.1.1-0.5.1.hum1 · Red Hat:hummingbird:1 | Реестр пакетов (OSV) |
| red hat:nodejs | 1:24.18.0-3.module+el8.10.0+24639+56878497 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| red hat:nodejs-debuginfo | 1:24.18.0-3.module+el8.10.0+24639+56878497 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| red hat:nodejs-debugsource | 1:24.18.0-3.module+el8.10.0+24639+56878497 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| red hat:nodejs-devel | 1:24.18.0-3.module+el8.10.0+24639+56878497 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| red hat:nodejs-docs | 1:24.18.0-3.module+el8.10.0+24639+56878497 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| red hat:nodejs-full-i18n | 1:24.18.0-3.module+el8.10.0+24639+56878497 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| red hat:nodejs-libs | 1:24.18.0-3.module+el8.10.0+24639+56878497 · Red Hat:enterprise_linux:8::appstream | Реестр пакетов (OSV) |
| red hat:nodejs-nodemon | 0:3.1.14-3.el10_2 · Red Hat:enterprise_linux:10.2 | Реестр пакетов (OSV) |
| red hat:nodejs24 | 0:24.18.1-0.2.1.hum1 · Red Hat:hummingbird:1 | Реестр пакетов (OSV) |
| red hat:nodejs24-bin | 0:24.18.1-0.2.1.hum1 · Red Hat:hummingbird:1 | Реестр пакетов (OSV) |
| rocky linux:nodejs | 1:24.18.0-3.module+el8.10.0+40277+b1b3f89e · Rocky Linux:8 | Реестр пакетов (OSV) |
| rocky linux:nodejs-nodemon | 0:3.1.14-3.el10_2 · Rocky Linux:10 | Реестр пакетов (OSV) |
+3
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
Кроме публикации датированных событий нет.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
В записи CNA нет авторов.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
- CVE-2026-14257с разницей 11 дн.brace-expansion DoS via unbounded expansion length causing an out-of-memory process crash30Наблюдать
- CVE-2026-13149с разницей 34 дн.brace-expansion through 5.0.6 is vulnerable to denial of service.30Наблюдать
- CVE-2026-102276с разницей 56 дн.brace-expansion: DoS via uncontrolled recursion in parseCommaParts causing stack exhaustion30Наблюдать
- CVE-2026-102278с разницей 56 дн.brace-expansion: DoS via uncontrolled recursion on nested brace groups causing stack exhaustion30Наблюдать
- CVE-2026-45149с разницей 66 дн.brace-expansion: Large numeric range defeats documented `max` DoS protection30Наблюдать
- CVE-2026-33750с разницей 129 дн.brace-expansion: Zero-step sequence causes process hang and memory exhaustion30Наблюдать
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Технические детали
Условия атаки
- Может быть вызвана любым, у кого есть доступ через интернет.
- Учётная запись или пароль не требуются.
- Действия пользователя не требуются.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- нет
- Целостность
- нет
- Доступность
- высокое · работа сервиса может быть нарушена
- Вектор атаки
- Сеть
- Сложность атаки
- Низкая
- Требуемые привилегии
- Не требуются
- Взаимодействие с пользователем
- Не требуется
- Область действия
- Не изменяется
- Влияние на конфиденциальность
- Нет
- Влияние на целостность
- Нет
- Влияние на доступность
- Высокое
Класс уязвимости (CWE)
CWE-400 · Uncontrolled Resource ConsumptionВектор CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
nvd-secondary
Первопричина
Код, разбирающий вложенные структуры, не ограничивает глубину или размер. Небольшие входные данные могут привести к несоразмерной вычислительной нагрузке.
Ошибка в коде
Весь класс CWE-400Показательный пример этого класса уязвимостей. Это не исходный код вендора; показан ошибочный шаблон и его исправление.
Уязвимый код
function expand(node) { return node.children.map(expand);}Исправленный код
const MAX_DEPTH = 32;function expand(node, depth = 0) { if (depth > MAX_DEPTH) throw new Error("слишком глубоко"); return node.children.map((c) => expand(c, depth + 1));}Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
Анализ Noroxi
Анализа Noroxi для этой записи пока нет
Мы не пишем анализ вручную для всех 385 000+ уязвимостей; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.
Мы используем этот продукт, нужна помощьЖурнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
- github.com/juliangruber/brace-expansion/commit/139d015104e71433ad52a41d19467c48ecbb2c7d
- github.com/juliangruber/brace-expansion/commit/1e30c930238d7162802d88a94189182def178dac
- github.com/juliangruber/brace-expansion/commit/688a99eeaab02627c2b89ba8ba4821fecfa659cf
- github.com/juliangruber/brace-expansion/commit/cb4b9e47cc2ec777c14b2b4492fb431a56f6a031
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.