VDB
Sign up
MEDIUM6.5

GHSA-jxxr-4gwj-5jf2

brace-expansion: Large numeric range defeats documented `max` DoS protection

Quick fix

GHSA-jxxr-4gwj-5jf2 — brace-expansion: upgrade to the fixed version with the command below.

npm install brace-expansion@5.0.6

Details

The `max` option was being applied too late:

When expanding a single large numeric range like `{1..10000000}`, the sequence generation loop generates all 10 million intermediate elements before the `max` limit is applied With `max=10`, the output is correctly limited to 10 items, but the process still allocates `~505 MB` and spends `~800ms` building the full intermediate array.

### Workaround

Ensure the string to be expanded doesn't contain more values than the desired `max` item count.

Are you affected?

Enter the version of the package you're using.

Affected packages

npm/brace-expansion
Introduced in: 5.0.0Fixed in: 5.0.6
Fixnpm install brace-expansion@5.0.6

References