[wp-trac] [WordPress Trac] #64833: Bundled Themes: Update svgo transitive dependency in Twenty Twenty-Five to fix CVE-2026-29074 (Billion Laughs DoS)
WordPress Trac
noreply at wordpress.org
Mon Mar 9 10:44:02 UTC 2026
#64833: Bundled Themes: Update svgo transitive dependency in Twenty Twenty-Five to
fix CVE-2026-29074 (Billion Laughs DoS)
---------------------------+-----------------------------
Reporter: aakashverma1 | Owner: (none)
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Bundled Theme | Version: 6.9
Severity: normal | Keywords:
Focuses: |
---------------------------+-----------------------------
== Summary ==
The `package-lock.json` file introduced to the Twenty Twenty-Five theme in
[60934]
locks `svgo` at version `4.0.0` as a transitive dependency via `cssnano
7.1.1 > postcss-svgo > svgo`.
`svgo 4.0.0` is affected by CVE-2026-29074 (GHSA-xpqw-6gx7-v673), a HIGH
severity
Denial of Service vulnerability published on March 6, 2026.
== Vulnerability Details ==
* CVE: CVE-2026-29074
* GHSA: https://github.com/advisories/GHSA-xpqw-6gx7-v673
* CVSS score: 7.5 (HIGH) — AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
* CWE: CWE-776 (Improper Restriction of Recursive Entity References in
DTDs — 'XML Entity Expansion')
SVGO accepts XML with custom entities without guards against entity
expansion or
recursion. A crafted SVG file of only 811 bytes can stall the application
or crash
the Node.js process with "JavaScript heap out of memory" (Billion Laughs
attack).
== Affected Dependency Chain ==
cssnano 7.1.1 → postcss-svgo → svgo 4.0.0 (vulnerable)
Located in:
src/wp-content/themes/twentytwentyfive/package-lock.json
== Impact on WordPress ==
This dependency is build-time only (used by `npm run build` to minify
`style.css`
into `style.min.css`). It is NOT executed at runtime on WordPress servers
and does
NOT affect end users of live WordPress sites. There is no exploit surface
in a
production WordPress deployment.
The risk applies if a developer or CI/CD pipeline runs `npm install` +
`npm run build`
inside the theme directory while processing untrusted SVG input — which is
not a
standard workflow.
== Fix ==
Bump `svgo` from `4.0.0` to `4.0.1` in `package-lock.json`. The fix in
svgo 4.0.1
sets the minimum version of the `sax` XML parser to v1.5.0, which adds
guards against entity expansion by default.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/64833>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list