{"id":"CVE-2026-27904","summary":"minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions","details":"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.","aliases":["GHSA-23c5-xmqv-rm74"],"modified":"2026-03-12T04:36:59.322788Z","published":"2026-02-26T01:07:42.693Z","related":["CGA-g4jg-35cv-gfx5"],"database_specific":{"cwe_ids":["CWE-1333"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/27xxx/CVE-2026-27904.json","cna_assigner":"GitHub_M"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/27xxx/CVE-2026-27904.json"},{"type":"ADVISORY","url":"https://github.com/isaacs/minimatch/security/advisories/GHSA-23c5-xmqv-rm74"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-27904"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/isaacs/minimatch","events":[{"introduced":"346685ced5203464bb10fd3d4dfa6964f6102ede"},{"fixed":"ea94840326c3f40522f1b544bd2303024b0eec35"}],"database_specific":{"versions":[{"introduced":"10.0.0"},{"fixed":"10.2.3"}]}},{"type":"GIT","repo":"https://github.com/isaacs/minimatch","events":[{"introduced":"b95cb1e4404ce374e447b3b1bfde837e74f139bd"},{"fixed":"2de496f6d9362dd92460f35ffa6ff8de2907244b"}],"database_specific":{"versions":[{"introduced":"9.0.0"},{"fixed":"9.0.7"}]}},{"type":"GIT","repo":"https://github.com/isaacs/minimatch","events":[{"introduced":"5d20578d5749f53f3413b7ca413e5658d6ab0d05"},{"fixed":"a5f07f4b8de8a068e8fcafd44e7cafc2a8fe7be3"}],"database_specific":{"versions":[{"introduced":"8.0.0"},{"fixed":"8.0.6"}]}},{"type":"GIT","repo":"https://github.com/isaacs/minimatch","events":[{"introduced":"ce9e6a4b42eb8a4c39eff1258affa9d37c66101b"},{"fixed":"6fcf01a77e8a85765609e41be089595a36989e07"}],"database_specific":{"versions":[{"introduced":"7.0.0"},{"fixed":"7.4.8"}]}},{"type":"GIT","repo":"https://github.com/isaacs/minimatch","events":[{"introduced":"31f61eeaa6c4493f81bf5eb0a146f23e538fdfd7"},{"fixed":"dc3340d6509d25d4bb75258e6d3b4403bb1cd9c3"}],"database_specific":{"versions":[{"introduced":"6.0.0"},{"fixed":"6.2.2"}]}},{"type":"GIT","repo":"https://github.com/isaacs/minimatch","events":[{"introduced":"fc44f5f9123f534ecbf76af65558eb87d90f1028"},{"fixed":"e92ae291a1e512f2d7ae13d6797b02315f68a40c"}],"database_specific":{"versions":[{"introduced":"5.0.0"},{"fixed":"5.1.8"}]}},{"type":"GIT","repo":"https://github.com/isaacs/minimatch","events":[{"introduced":"26d281dc585af91df47cb93844e227e0ee90b7ce"},{"fixed":"5970751fa5886750886a59a20de834d54b4e2541"}],"database_specific":{"versions":[{"introduced":"4.0.0"},{"fixed":"4.2.5"}]}},{"type":"GIT","repo":"https://github.com/isaacs/minimatch","events":[{"introduced":"0"},{"fixed":"1a2e084af579731af66c221214e3ca8222c9bf23"}],"database_specific":{"versions":[{"introduced":"0"},{"fixed":"3.1.4"}]}}],"versions":["0.0.4","0.0.5","0.1.0","0.1.1","0.1.2","0.1.3","0.1.4","0.1.5","0.1.6","0.2.0","0.2.1","0.2.2","0.2.3","0.2.4","0.2.5","v0.0.1","v0.2.10","v0.2.11","v0.2.12","v0.2.13","v0.2.14","v0.2.6","v0.2.7","v0.2.8","v0.2.9","v0.3.0","v0.4.0","v1.0.0","v10.0.0","v10.0.1","v10.0.2","v10.0.3","v10.1.0","v10.1.1","v10.1.2","v10.1.3","v10.2.0","v10.2.1","v10.2.2","v2.0.0","v2.0.0-0","v2.0.1","v2.0.10","v2.0.2","v2.0.3","v2.0.4","v2.0.5","v2.0.6","v2.0.7","v2.0.8","v2.0.9","v3.0.0","v3.0.1","v3.0.2","v3.0.3","v3.0.4","v3.0.5","v3.0.6","v3.1.0","v3.1.1","v3.1.2","v3.1.3","v4.0.0","v4.1.0","v4.1.1","v4.2.0","v4.2.1","v4.2.2","v4.2.3","v4.2.4","v5.0.0","v5.0.1","v5.1.0","v5.1.1","v5.1.2","v5.1.3","v5.1.5","v5.1.6","v5.1.7","v6.0.0","v6.0.1","v6.0.2","v6.0.3","v6.0.4","v6.1.0","v6.1.1","v6.1.10","v6.1.2","v6.1.3","v6.1.4","v6.1.5","v6.1.6","v6.1.7","v6.1.8","v6.1.9","v6.2.0","v6.2.1","v7.0.0","v7.0.1","v7.1.0","v7.1.1","v7.1.2","v7.1.3","v7.1.4","v7.2.0","v7.3.0","v7.4.0","v7.4.1","v7.4.2","v7.4.3","v7.4.4","v7.4.5","v7.4.6","v7.4.7","v8.0.0","v8.0.1","v8.0.2","v8.0.3","v8.0.4","v8.0.5","v9.0.0","v9.0.1","v9.0.2","v9.0.3","v9.0.4","v9.0.5","v9.0.6"],"database_specific":{"source":"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-27904.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}]}