Description
brace-expansion through 5.0.6 is vulnerable to denial of service. The expand() function exhibits exponential-time complexity in the number of consecutive non-expanding '{}' brace groups. An attacker who passes a crafted string to expand(), directly or transitively, can cause significant CPU consumption and event-loop blocking. The max option does not mitigate this, as it bounds the output size rather than the recursion work.
Problem types
CWE-400 Uncontrolled Resource Consumption
CWE-407 Inefficient Algorithmic Complexity
Product status
Any version
Credits
bnbdr
References
github.com/...ommit/c7e33ec13ac1a684c116720843ce24e208611754
www.npmjs.com/package/brace-expansion