GHSA-jxxr-4gwj-5jf2
brace-expansion: Large numeric range defeats documented `max` DoS protection
Packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| npm | brace-expansion | >= 5.0.0, < 5.0.6 | 5.0.6 |
Details
As written in the advisory (Markdown source, shown as plain text).
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.
References
External links from the advisory. They lead to third-party sites.