Skip to main content
← All vulnerabilities
CVE-2026-26996GHSA-3PPC-4F35-3M26

minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 10.2.1, 9.0.6, 8.0.5, 7.4.7, 6.2.1, and 3 more
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: yes
  • Technical impact: partial

Summary

minimatch is a minimal matching utility for converting glob expressions into JavaScript RegExp objects. Versions 10.2.0 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. This issue has been fixed in version 10.2.1.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: yes · Technical impact: partial

  3. Record last updated

Affected versions

  • isaacs minimatch

    fixed in 10.2.1

  • minimatchnpm

    From 10.0.0 · fixed in 10.2.1

  • minimatchnpm

    From 9.0.0 · fixed in 9.0.6

  • minimatchnpm

    From 8.0.0 · fixed in 8.0.5

  • minimatchnpm

    From 7.0.0 · fixed in 7.4.7

  • minimatchnpm

    From 6.0.0 · fixed in 6.2.1

  • minimatchnpm

    From 5.0.0 · fixed in 5.1.7

  • minimatchnpm

    From 4.0.0 · fixed in 4.2.4

  • minimatchnpm

    fixed in 3.1.3

References 2

GitHub · isaacs/minimatch