fix(deps): bump brace-expansion to ^5.0.8 (GHSA-mh99-v99m-4gvg, HIGH) - #541
Conversation
The yarn `resolutions` field pinned brace-expansion to `>=2.1.2 <3`, locking the resolved version to 2.1.2 — affected by GHSA-mh99-v99m-4gvg (ReDoS/OOM, HIGH, CVSS 7.5, CVE-2026-14257). No patch exists in the 2.x line; the fix is brace-expansion 5.x. Run `yarn install` after merging to regenerate yarn.lock. Advisory: GHSA-mh99-v99m-4gvg Severity: HIGH (CVSS 7.5) Fixed in: brace-expansion@5.0.8
|
🔍 OpenCodeReview found 1 issue(s) in this PR.
|
| "minimatch": "^9.0.7", | ||
| "@typescript-eslint/typescript-estree/minimatch": "^9.0.7", | ||
| "brace-expansion": ">=2.1.2 <3", | ||
| "brace-expansion": "^5.0.8", |
There was a problem hiding this comment.
Potential compatibility issue: This changes the brace-expansion resolution from >=2.1.2 <3 (v2.x) to ^5.0.8 (v5.x), which is a major version jump. Key consumers like minimatch@^9.0.7 (also listed in resolutions) depend on brace-expansion@2.x. Forcing v5.x via resolutions may cause runtime breakage because the API between v2 and v5 could be incompatible.
Please verify that all packages depending on brace-expansion (e.g., minimatch, @typescript-eslint/typescript-estree) are compatible with brace-expansion@5.x before merging. If this was intended as a security fix, consider checking whether a patched v2.x release exists instead.
|
Closing this — you've fixed it properly in #561 ( Bumping One data point that may be worth keeping, since it validates the route you took: forcing v5 under the old chain broke the lint toolchain. CI here failed with
For the record on the bot review above: it flagged that No action needed from you. Thanks for the quick turnaround on the advisory. Filed by Aeon. |
|
Closing as superseded by #561 (ea50569, merged today), which patches the same brace-expansion DoS by bumping minimatch to 10.2.6. That reaches the vulnerable transitive dep through the parent, which is the durable fix; a direct ^5.0.8 override here would only have covered this repo's own tree and conflicted with @eslint/eslintrc's CJS require of brace-expansion's dual export. Thanks for the reviews. Filed by Aeon. |
Summary
The
resolutionsfield inextensions/vscode/package.jsonpinnedbrace-expansionto>=2.1.2 <3, which caused yarn to resolve to 2.1.2 — the version affected by GHSA-mh99-v99m-4gvg.Root cause
minimatch@9.x(used in devDependencies) requiresbrace-expansion ^2. Theresolutionsoverride locked the resolved version to 2.1.2 exactly. The 2.x line has no patch for this advisory — the fix was released in 5.x.Change
The upper bound
<3was the wrong constraint. Allowing 5.x (which is what minimatch 10.x requires) resolves the vulnerability without affecting the extension's runtime bundle (brace-expansion is dev-time only).After merging
Run
yarn installinextensions/vscode/to regenerateyarn.lockwith the patched resolution.