7.5Alta

CVE-2026-27904minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions

isaacs minimatch Publicada: (hace 8 meses)

Descripción

minimatch is a minimal matching utility for converting glob expressions into JavaScript RegExp objects. Prior to version 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, and 3.1.4, nested `*()` extglobs produce regexps with nested unbounded quantifiers (e.g. `(?:(?:a|b)*)*`), which exhibit catastrophic backtracking in V8. With a 12-byte pattern `*(*(*(a|b)))` and an 18-byte non-matching input, `minimatch()` stalls for over 7 seconds. Adding a single nesting level or a few input characters pushes this to minutes. This is the most severe finding: it is triggered by the default `minimatch()` API with no special options, and the minimum viable pattern is only 12 bytes. The same issue affects `+()` extglobs equally. Versions 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, and 3.1.4 fix the issue.

Debilidad (CWE): CWE-1333

Datos: CVE.org, NVD, CISA KEV, FIRST EPSS, Ubuntu. Se publican tal como los indican las fuentes, en inglés.

Productos y versiones afectados

FabricanteProductoVersiones
isaacs minimatch >= 10.0.0, < 10.2.3, >= 9.0.0, < 9.0.7, >= 8.0.0, < 8.0.6, >= 7.0.0, < 7.4.8, >= 6.0.0, < 6.2.2, >= 5.0.0, < 5.1.8, >= 4.0.0, < 4.2.5, < 3.1.4
minimatch project minimatch < 3.1.4

Referencias y parches

Coincidencias CPE (NVD) (8)

  • cpe:2.3:a:minimatch_project:minimatch:*:*:*:*:*:node.js:*:* < 3.1.4
  • cpe:2.3:a:minimatch_project:minimatch:*:*:*:*:*:node.js:*:* ≥ 4.0.0 < 4.2.5
  • cpe:2.3:a:minimatch_project:minimatch:*:*:*:*:*:node.js:*:* ≥ 5.0.0 < 5.1.8
  • cpe:2.3:a:minimatch_project:minimatch:*:*:*:*:*:node.js:*:* ≥ 6.0.0 < 6.2.2
  • cpe:2.3:a:minimatch_project:minimatch:*:*:*:*:*:node.js:*:* ≥ 7.0.0 < 7.4.8
  • cpe:2.3:a:minimatch_project:minimatch:*:*:*:*:*:node.js:*:* ≥ 8.0.0 < 8.0.6
  • cpe:2.3:a:minimatch_project:minimatch:*:*:*:*:*:node.js:*:* ≥ 9.0.0 < 9.0.7
  • cpe:2.3:a:minimatch_project:minimatch:*:*:*:*:*:node.js:*:* ≥ 10.0.0 < 10.2.3