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.

Project Subscriptions

Vendors Products
Minimatch Subscribe
Minimatch Project Subscribe
Minimatch Subscribe
Advisories
Source ID Title
Github GHSA Github GHSA GHSA-23c5-xmqv-rm74 minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions
Fixes

Solution

No solution given by the vendor.


Workaround

No workaround given by the vendor.

History

Fri, 27 Feb 2026 17:30:00 +0000

Type Values Removed Values Added
First Time appeared Minimatch Project
Minimatch Project minimatch
CPEs cpe:2.3:a:minimatch_project:minimatch:*:*:*:*:*:node.js:*:*
Vendors & Products Minimatch Project
Minimatch Project minimatch

Fri, 27 Feb 2026 15:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 26 Feb 2026 13:30:00 +0000

Type Values Removed Values Added
First Time appeared Isaacs
Isaacs minimatch
Vendors & Products Isaacs
Isaacs minimatch

Thu, 26 Feb 2026 01:30:00 +0000

Type Values Removed Values Added
Description 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.
Title minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions
Weaknesses CWE-1333
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


Projects

Sign in to view the affected projects.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-02-26T19:21:39.006Z

Reserved: 2026-02-24T15:19:29.718Z

Link: CVE-2026-27904

cve-icon Vulnrichment

Updated: 2026-02-26T19:21:29.476Z

cve-icon NVD

Status : Analyzed

Published: 2026-02-26T02:16:21.760

Modified: 2026-02-27T17:16:23.773

Link: CVE-2026-27904

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-02-26T13:10:08Z

Weaknesses