GitHub Advisoryadvisory · npm
GHSA-jxxr-4gwj-5jf2 brace-expansion: Large numeric range defeats documented `max` DoS protection
MEDIUM
Official page ↗
- Aliases
- CVE-2026-45149
- Ecosystem
- npm
- Packages
- brace-expansion
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
- Weaknesses
- CWE-400
- Reviewed
- 2026-05-18
Affected packages
• npm brace-expansion: >= 5.0.0, < 5.0.6 → fixed in 5.0.6
Description
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.
Related
Alias · CVE (1)
- CVE-2026-45149 The brace-expansion library generates arbitrary strings containing a common prefix and suffix. vulnerability
Weakness · CWE (1)
- CWE-400 Uncontrolled Resource Consumption weakness
References
- https://github.com/juliangruber/brace-expansion/security/advisories/GHSA-jxxr-4gwj-5jf2 web
- https://nvd.nist.gov/vuln/detail/CVE-2026-45149 advisory
- https://github.com/juliangruber/brace-expansion/commit/c0b095bdc52bc4c36dc88deddbadabc49f8371e5 web
- https://github.com/juliangruber/brace-expansion package