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

Reply via email to