Skip to main content

Inefficient Regular Expression Complexity in minimatch

CVE-2026-26996

  • minimatch
Severity High
Score 8.7/10

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