Inefficient Regular Expression Complexity in minimatch
CVE-2026-26996
- minimatch
Summary
minimatch is a minimal matching utility for converting glob expressions into JavaScript RegExp objects. Versions prior to 3.1.3, 4.0.0 prior to 4.2.4, 5.0.0 prior to 5.1.7, 6.0.0 prior to 6.2.1, 7.0.0 prior to 7.4.7, 8.0.0 prior to 8.0.5, 9.0.0 prior to 9.0.6, 10.0.0 prior to 10.2.1 and below are vulnerable to Regular Expression Denial-of-Service (ReDoS) when a glob pattern contains many consecutive * wildcards followed by a literal character that doesn't appear in the test string. Each * compiles to a separate [^/]*? regex group, and when the match fails, V8's regex engine backtracks exponentially across all possible splits. The time complexity is O(4^N) where N is the number of * characters. With N=15, a single "minimatch()" call takes ~2 seconds. With N=34, it hangs effectively forever. Any application that passes user-controlled strings to "minimatch()" as the pattern argument is vulnerable to DoS.
- LOW
- NETWORK
- NONE
- UNCHANGED
- NONE
- NONE
- NONE
- HIGH
CWE-1333 - Inefficient Regular Expression Complexity
The product uses a regular expression with an inefficient, possibly exponential worst-case computational complexity that consumes excessive CPU cycles.
References
Advisory Timeline
- Published