Skip to content

fix: patch @babel/runtime and minimatch ReDoS vulnerabilities#405

Merged
fabiankaegy merged 2 commits into10up:developfrom
rickalee:fix/babel-runtime-cve-babel-runtime-ghsa-968p
Apr 1, 2026
Merged

fix: patch @babel/runtime and minimatch ReDoS vulnerabilities#405
fabiankaegy merged 2 commits into10up:developfrom
rickalee:fix/babel-runtime-cve-babel-runtime-ghsa-968p

Conversation

@rickalee
Copy link
Copy Markdown
Contributor

@rickalee rickalee commented Mar 31, 2026

Summary

Details

@babel/runtime (GHSA-968p-4wvh-cqc8)

@wordpress/icons@10.x (latest: 10.32.0) ships @babel/runtime@7.25.7 as a production dependency, which has an inefficient RegExp complexity vulnerability fixed in @babel/runtime@7.26.10. @wordpress/icons@11.0.0 drops the @babel/runtime dependency entirely.

The only usage in this package is three stable icons (close, chevronUp, chevronDown) in components/content-picker/PickedItem.tsx, all of which are present in v11.

minimatch ReDoS (GHSA-3ppc-4f35-3m26 / GHSA-7r86-cg39-jmmj / GHSA-23c5-xmqv-rm74)

@typescript-eslint/parser@^6 (a direct dependency) uses minimatch: ^9.0.3, which resolves into the vulnerable range 9.0.0–9.0.6. All three ReDoS CVEs are patched in minimatch@9.0.7. Adding "minimatch": "^9.0.7" to the existing overrides block pins the transitive dep to 9.0.9 without requiring a major upgrade.

The long-term fix is upgrading to @typescript-eslint@8 + ESLint v10, tracked upstream in WordPress/gutenberg#64782.

Test plan

  • Verify PickedItem component renders correctly with the drag-and-drop content picker
  • Run npm audit and confirm no @babel/runtime or minimatch CVEs in the vulnerable ranges
  • Run npm run build successfully

🤖 Generated with Claude Code

`@wordpress/icons@10.x` (latest: 10.32.0) ships `@babel/runtime@7.25.7`
as a production dependency, which is vulnerable to the inefficient RegExp
complexity CVE (GHSA-968p-4wvh-cqc8, fixed in @babel/runtime@7.26.10).

`@wordpress/icons@11.0.0` drops the `@babel/runtime` dependency entirely,
resolving the CVE for consumers of `@10up/block-components`.

The only usage is three stable icons (`close`, `chevronUp`, `chevronDown`)
in `components/content-picker/PickedItem.tsx`, all of which are present in
v11 and v12.
@rickalee rickalee requested review from fabiankaegy March 31, 2026 19:11
…86-cg39-jmmj, GHSA-23c5-xmqv-rm74

`@typescript-eslint/parser@^6` (a direct dependency) brings in
`minimatch: ^9.0.3`, which resolves into the vulnerable range
`9.0.0–9.0.6`. All three ReDoS CVEs are fixed in minimatch@9.0.7.

Adding `"minimatch": "^9.0.7"` to the existing `overrides` block pins
the transitive dep to 9.0.9 (current latest-v9). The proper long-term
fix is upgrading to @typescript-eslint@8 once WordPress/Gutenberg
completes their ESLint v10 migration (gutenberg#64782).
@rickalee rickalee changed the title Bump @wordpress/icons from ^10 to ^11 to fix GHSA-968p-4wvh-cqc8 (@babel/runtime) fix: patch @babel/runtime and minimatch ReDoS CVEs (GHSA-968p-4wvh-cqc8, GHSA-3ppc-4f35-3m26, GHSA-7r86-cg39-jmmj, GHSA-23c5-xmqv-rm74) Mar 31, 2026
@rickalee rickalee changed the title fix: patch @babel/runtime and minimatch ReDoS CVEs (GHSA-968p-4wvh-cqc8, GHSA-3ppc-4f35-3m26, GHSA-7r86-cg39-jmmj, GHSA-23c5-xmqv-rm74) fix: patch @babel/runtime and minimatch ReDoS vulnerabilities Mar 31, 2026
@fabiankaegy fabiankaegy merged commit e0876f1 into 10up:develop Apr 1, 2026
2 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants