SVGO Denial of Service via Entity Expansion (v2.1.0<2.8.1, v3.0.0<3.3.3, v4.0.0)
CVE-2026-29074 Published on March 6, 2026
SVGO: DoS through entity expansion in DOCTYPE (Billion Laughs)
SVGO, short for SVG Optimizer, is a Node.js library and command-line application for optimizing SVG files. From version 2.1.0 to before version 2.8.1, from version 3.0.0 to before version 3.3.3, and before version 4.0.1, SVGO accepts XML with custom entities, without guards against entity expansion or recursion. This can result in a small XML file (811 bytes) stalling the application and even crashing the Node.js process with JavaScript heap out of memory. This issue has been patched in versions 2.8.1, 3.3.3, and 4.0.1.
Vulnerability Analysis
CVE-2026-29074 is exploitable with network access, and does not require authorization privileges or user interaction. This vulnerability is considered to have a low attack complexity. The potential impact of an exploit of this vulnerability is considered to have no impact on confidentiality and integrity, and a high impact on availability.
Weakness Type
What is a XEE Vulnerability?
The software uses XML documents and allows their structure to be defined with a Document Type Definition (DTD), but it does not properly control the number of recursive definitions of entities. If the DTD contains a large number of nested or recursive entities, this can lead to explosive growth of data when parsed, causing a denial of service.
CVE-2026-29074 has been classified to as a XEE vulnerability or weakness.
Products Associated with CVE-2026-29074
Want to know whenever a new CVE is published for Red Hat products? stack.watch will email you.
Affected Versions
svgo:- Version >= 2.1.0, < 2.8.1 is affected.
- Version >= 3.0.0, < 3.3.3 is affected.
- Version = 4.0.0 is affected.
- Version 0:2.5.20260422-2.el8ap and below * is unaffected.
- Version 0:2.5.20260422-2.el9ap and below * is unaffected.
- Version 0:2.6.7-1.el9ap and below * is unaffected.
- Version 1775594119 and below * is unaffected.
- Version 1777403872 and below * is unaffected.
- Version 1777387242 and below * is unaffected.
- Version 1774243862 and below * is unaffected.
- Version 1776784286 and below * is unaffected.
- Version 1777903262 and below * is unaffected.
- Version 1774282136 and below * is unaffected.
- Version 1780467029 and below * is unaffected.
- Version 1780467147 and below * is unaffected.
- Version 1779189627 and below * is unaffected.
- Version 1778473763 and below * is unaffected.
- Version 1778666987 and below * is unaffected.
- Version 1779814592 and below * is unaffected.
- Version 1776191302 and below * is unaffected.
- Version 1776151124 and below * is unaffected.
- Version 1776151272 and below * is unaffected.
- Version 1776151106 and below * is unaffected.
- Version 1776151270 and below * is unaffected.
- Version 1776155669 and below * is unaffected.
- Version 1776149682 and below * is unaffected.
- Version 1776151134 and below * is unaffected.
- Version 1776151277 and below * is unaffected.
- Version 1776736910 and below * is unaffected.
- Version 1776752646 and below * is unaffected.
- Version 1779689392 and below * is unaffected.
- Version 1775169219 and below * is unaffected.
- Version 1779204086 and below * is unaffected.
- Version 1779922205 and below * is unaffected.
- Version 1775169218 and below * is unaffected.
Exploit Probability
EPSS (Exploit Prediction Scoring System) scores estimate the probability that a vulnerability will be exploited in the wild within the next 30 days. The percentile shows you how this score compares to all other vulnerabilities.