Source: node-minimatch Version: 9.0.3-6 Severity: important Tags: security upstream X-Debbugs-Cc: [email protected], Debian Security Team <[email protected]>
Hi, The following vulnerabilities were published for node-minimatch. CVE-2026-27903[0]: | 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.3, `matchOne()` | performs unbounded recursive backtracking when a glob pattern | contains multiple non-adjacent `**` (GLOBSTAR) segments and the | input path does not match. The time complexity is O(C(n, k)) -- | binomial -- where `n` is the number of path segments and `k` is the | number of globstars. With k=11 and n=30, a call to the default | `minimatch()` API stalls for roughly 5 seconds. With k=13, it | exceeds 15 seconds. No memoization or call budget exists to bound | this behavior. Any application where an attacker can influence the | glob pattern passed to `minimatch()` is vulnerable. The realistic | attack surface includes build tools and task runners that accept | user-supplied glob arguments (ESLint, Webpack, Rollup config), | multi-tenant systems where one tenant configures glob-based rules | that run in a shared process, admin or developer interfaces that | accept ignore-rule or filter configuration as globs, and CI/CD | pipelines that evaluate user-submitted config files containing glob | patterns. An attacker who can place a crafted pattern into any of | these paths can stall the Node.js event loop for tens of seconds per | invocation. The pattern is 56 bytes for a 5-second stall and does | not require authentication in contexts where pattern input is part | of the feature. 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.3 fix the issue. CVE-2026-27904[1]: | 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. If you fix the vulnerabilities please also make sure to include the CVE (Common Vulnerabilities & Exposures) ids in your changelog entry. For further information see: [0] https://security-tracker.debian.org/tracker/CVE-2026-27903 https://www.cve.org/CVERecord?id=CVE-2026-27903 [1] https://security-tracker.debian.org/tracker/CVE-2026-27904 https://www.cve.org/CVERecord?id=CVE-2026-27904 [2] https://github.com/isaacs/minimatch/security/advisories/GHSA-23c5-xmqv-rm74 [3] https://github.com/isaacs/minimatch/security/advisories/GHSA-7r86-cg39-jmmj [4] https://github.com/isaacs/minimatch/commit/0d4616de9193bf1d359271662e92657bb51b2f75 Please adjust the affected versions in the BTS as needed. Regards, Salvatore -- Pkg-javascript-devel mailing list [email protected] https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/pkg-javascript-devel
