minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| isaacs | minimatch | affected |
|
Configuration 1 [-]
|
No data.
| Vendor | Product | Versions | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Isaacs | Minimatch |
|
| Source | ID | Title |
|---|---|---|
Github GHSA |
GHSA-23c5-xmqv-rm74 | minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions |
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.525% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| References |
| |
| Metrics |
threat_severity
|
threat_severity
|
| 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 |
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Isaacs
Isaacs minimatch |
|
| Vendors & Products |
Isaacs
Isaacs minimatch |
| 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
|