Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

github логотип

GHSA-f886-m6hf-6m8v

Опубликовано: 26 мар. 2026
Источник: github
Github: Прошло ревью
CVSS3: 6.5

Описание

brace-expansion: Zero-step sequence causes process hang and memory exhaustion

Impact

A brace pattern with a zero step value (e.g., {1..2..0}) causes the sequence generation loop to run indefinitely, making the process hang for seconds and allocate heaps of memory.

The loop in question:

https://github.com/juliangruber/brace-expansion/blob/daa71bcb4a30a2df9bcb7f7b8daaf2ab30e5794a/src/index.ts#L184

test() is one of

https://github.com/juliangruber/brace-expansion/blob/daa71bcb4a30a2df9bcb7f7b8daaf2ab30e5794a/src/index.ts#L107-L113

The increment is computed as Math.abs(0) = 0, so the loop variable never advances. On a test machine, the process hangs for about 3.5 seconds and allocates roughly 1.9 GB of memory before throwing a RangeError. Setting max to any value has no effect because the limit is only checked at the output combination step, not during sequence generation.

This affects any application that passes untrusted strings to expand(), or by error sets a step value of 0. That includes tools built on minimatch/glob that resolve patterns from CLI arguments or config files. The input needed is just 10 bytes.

Patches

Upgrade to versions

  • 5.0.5+

A step increment of 0 is now sanitized to 1, which matches bash behavior.

Workarounds

Sanitize strings passed to expand() to ensure a step value of 0 is not used.

Пакеты

Наименование

brace-expansion

npm
Затронутые версииВерсия исправления

>= 4.0.0, < 5.0.5

5.0.5

Наименование

brace-expansion

npm
Затронутые версииВерсия исправления

>= 3.0.0, < 3.0.2

3.0.2

Наименование

brace-expansion

npm
Затронутые версииВерсия исправления

>= 2.0.0, < 2.0.3

2.0.3

Наименование

brace-expansion

npm
Затронутые версииВерсия исправления

< 1.1.13

1.1.13

EPSS

Процентиль: 35%
0.0043
Низкий

6.5 Medium

CVSS3

Дефекты

CWE-400

Связанные уязвимости

CVSS3: 6.5
ubuntu
4 месяца назад

The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to versions 5.0.5, 3.0.2, 2.0.3, and 1.1.13, a brace pattern with a zero step value (e.g., `{1..2..0}`) causes the sequence generation loop to run indefinitely, making the process hang for seconds and allocate heaps of memory. Versions 5.0.5, 3.0.2, 2.0.3, and 1.1.13 fix the issue. As a workaround, sanitize strings passed to `expand()` to ensure a step value of `0` is not used.

CVSS3: 6.5
redhat
4 месяца назад

The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to versions 5.0.5, 3.0.2, 2.0.3, and 1.1.13, a brace pattern with a zero step value (e.g., `{1..2..0}`) causes the sequence generation loop to run indefinitely, making the process hang for seconds and allocate heaps of memory. Versions 5.0.5, 3.0.2, 2.0.3, and 1.1.13 fix the issue. As a workaround, sanitize strings passed to `expand()` to ensure a step value of `0` is not used.

CVSS3: 6.5
nvd
4 месяца назад

The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to versions 5.0.5, 3.0.2, 2.0.3, and 1.1.13, a brace pattern with a zero step value (e.g., `{1..2..0}`) causes the sequence generation loop to run indefinitely, making the process hang for seconds and allocate heaps of memory. Versions 5.0.5, 3.0.2, 2.0.3, and 1.1.13 fix the issue. As a workaround, sanitize strings passed to `expand()` to ensure a step value of `0` is not used.

CVSS3: 6.5
msrc
4 месяца назад

brace-expansion: Zero-step sequence causes process hang and memory exhaustion

CVSS3: 6.5
debian
4 месяца назад

The brace-expansion library generates arbitrary strings containing a c ...

EPSS

Процентиль: 35%
0.0043
Низкий

6.5 Medium

CVSS3

Дефекты

CWE-400