Repository navigation
Conversation
|
Independent verification corroborates that minimatch 3.1.5 lacks the optimizer described by GHSA-g3hv-75wg-m249. We checked integrity-verified official npm packages 3.1.5, 10.2.6 and 11.0.3. The versioned 3.1.5 source contains neither A bounded comparison of the documented preprocessing mechanism, with a requested 64-pattern expansion cap, produced one pattern in 3.1.5, exhausted a 64 MiB child heap in 10.2.6, and stopped at 64 patterns in 11.0.3. Each child had a three-second external deadline inside a resource-limited disposable container. A smaller 10.2.6 control produced 4/16/64 patterns for 2/4/6 repeated segments. With the actual lint consumers' default optimization options, all three versions instead produced one pattern immediately. Our scope is the confirmed absence of this particular mechanism in 3.1.5; we did not independently establish the earliest affected release and are leaving that lower-bound decision to the version-history review here. This does not claim minimatch 3 is free of every denial-of-service issue. It explains why overriding legacy callable 3.x with incompatible 11.x solely to clear this alert is unnecessary; modern 10.2.6 consumers have been upgraded to 11.0.3 independently. |
|
Closed as a duplicate of #10807 |
Summary: minimatch versions before 7.0.0 do not contain the vulnerable code, so the affected range should start at
7.0.0instead of0.The advisory describes globParts amplification in
firstPhasePreProcess()whenoptimizationLevel >= 2. BothfirstPhasePreProcessand theoptimizationLeveloption first appear in minimatch 7.0.0 (published 2023-02-20). No release of an earlier major line has either of them.I checked the published npm tarballs by searching their JavaScript for
firstPhasePreProcessoroptimizationLevel:Command to reproduce for one version:
Why it matters: minimatch 3.x is still everywhere through eslint 9 (
@eslint/eslintrc,@eslint/config-array) and multimatch. Those projects get Dependabot alerts they cannot act on: minimatch 11 has no default export, so it can't replace 3.x under eslint 9.The change:
"introduced": "0"→"introduced": "7.0.0".