Public mode

No access to your tenant or devices. Every item links to its source. What this means

Sources need attention Customize Public modeDiscuss ChangeIntel on Discord

SVGO: DoS through entity expansion in DOCTYPE (Billion Laughs)

Exploitation and risk

Source status

CISA KEV lists vulnerabilities known to be exploited. FIRST EPSS estimates the likelihood of exploitation in the next 30 days. An unavailable score does not mean zero risk.

Which CVEs have scores here?

This view includes predictions for CVE identifiers explicitly listed in public NuGet advisories. Microsoft release pages have their own prediction coverage. Check source status for the scope and latest checks.

No exploitation or prediction data is available here for these CVEs. This does not mean they are safe or unlikely to be exploited.

cve-program · CVE-2026-29074

Published

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.

Source published
6 Mar 2026 07:23:05 UTC
Source modified
10 Sep 2026 12:04:59 UTC
Saved here
23 Oct 2026 15:48:27 UTC
Source terms
CVE Program Terms of Use

Original source record · Cite this exact observation · Complete original publisher JSON

Source: cve-program · CVE Program Terms of Use. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.

CVSS 3.1 · 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

euvd · EUVD-2026-10022

Published

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.

Additional publisher context

EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON.

Original publisher date fields

datePublished: Mar 6, 2026, 7:23:05 AM

dateUpdated: Sep 10, 2026, 12:04:59 PM

30 related source bulletins · separate from aliases

RHSA-2026:6309: Red Hat Security Advisory: Red Hat Ansible Automation Platform 2.6 Container Release Update

CVE-2025-69223 · CVE-2025-69873 · CVE-2026-1615 · CVE-2026-25639 · CVE-2026-25990 · CVE-2026-26007 · CVE-2026-28498 · CVE-2026-28802 · CVE-2026-29074 · CVE-2026-30827 · CVE-2026-30922

RHSA-2026:13512: Red Hat Security Advisory: Red Hat Ansible Automation Platform 2.5 Product Security and Bug Fix Update

CVE-2025-69534 · CVE-2025-69873 · CVE-2026-6266 · CVE-2026-23490 · CVE-2026-25679 · CVE-2026-26007 · CVE-2026-27459 · CVE-2026-27606 · CVE-2026-29074 · CVE-2026-30922 · CVE-2026-32597 · CVE-2026-39373

RHSA-2026:8484: Red Hat Security Advisory: Kiali 2.4.15 for Red Hat OpenShift Service Mesh 3.0

CVE-2025-62718 · CVE-2026-4800 · CVE-2026-25679 · CVE-2026-29063 · CVE-2026-29074 · CVE-2026-33186 · CVE-2026-40175

RHSA-2026:8483: Red Hat Security Advisory: Kiali 1.73.29 for Red Hat OpenShift Service Mesh 2.6

CVE-2025-61726 · CVE-2025-62718 · CVE-2025-68121 · CVE-2026-4800 · CVE-2026-25679 · CVE-2026-27606 · CVE-2026-29063 · CVE-2026-29074 · CVE-2026-33186 · CVE-2026-40175

RHSA-2026:8491: Red Hat Security Advisory: Kiali 2.17.6 for Red Hat OpenShift Service Mesh 3.2

CVE-2025-62718 · CVE-2026-4800 · CVE-2026-25679 · CVE-2026-29063 · CVE-2026-29074 · CVE-2026-33186 · CVE-2026-34986 · CVE-2026-40175

openSUSE-SU-2026:12070-1: velociraptor-0.76.7.0.git145.b60ef1146-1.1 on GA media

CVE-2025-0914 · CVE-2026-12143 · CVE-2026-14257 · CVE-2026-17535 · CVE-2026-18348 · CVE-2026-18636 · CVE-2026-18638 · CVE-2026-18639 · CVE-2026-18860 · CVE-2026-27601 · CVE-2026-29074 · CVE-2026-41650 · CVE-2026-45623 · CVE-2026-49356 · CVE-2026-5329 · CVE-2026-53550 · CVE-2026-55602 · CVE-2026-56852 · CVE-2026-59869 · CVE-2026-6290 · CVE-2026-64951 · CVE-2026-64952 · CVE-2026-64954 · CVE-2026-65903 · CVE-2026-65912 · CVE-2026-65913 · CVE-2026-65914 · CVE-2026-67314 · CVE-2026-67320 · CVE-2026-6863 · CVE-2026-69152 · CVE-2026-69153 · CVE-2026-6948 · CVE-2026-73086 · CVE-2026-73646 · CVE-2026-73650 · CVE-2026-7572 · CVE-2026-7573 · CVE-2026-84369 · CVE-2026-84370

RHSA-2026:48085: Red Hat Security Advisory: Red Hat Quay 3.18.0

CVE-2026-4427 · CVE-2026-27459 · CVE-2026-27962 · CVE-2026-29063 · CVE-2026-29074 · CVE-2026-32590 · CVE-2026-32591 · CVE-2026-34986 · CVE-2026-42039 · CVE-2026-48526 · CVE-2026-73086

RHSA-2026:6568: Red Hat Security Advisory: Red Hat Quay 3.15.4

CVE-2024-34156 · CVE-2024-45337 · CVE-2024-45338 · CVE-2025-61726 · CVE-2025-61728 · CVE-2025-61729 · CVE-2025-68121 · CVE-2025-68158 · CVE-2025-69873 · CVE-2026-4598 · CVE-2026-4599 · CVE-2026-4600 · CVE-2026-4601 · CVE-2026-4602 · CVE-2026-25639 · CVE-2026-25990 · CVE-2026-26007 · CVE-2026-26996 · CVE-2026-27628 · CVE-2026-27904 · CVE-2026-28498 · CVE-2026-28802 · CVE-2026-29063 · CVE-2026-29074 · CVE-2026-30922 · CVE-2026-32597

RHSA-2026:8490: Red Hat Security Advisory: Kiali 2.11.9 for Red Hat OpenShift Service Mesh 3.1

CVE-2025-62718 · CVE-2026-4800 · CVE-2026-25679 · CVE-2026-29063 · CVE-2026-29074 · CVE-2026-33186 · CVE-2026-34986 · CVE-2026-40175

WID-SEC-W-2026-0935: Red Hat Ansible Automation Platform: Mehrere Schwachstellen

CVE-2025-69223 · CVE-2025-69873 · CVE-2026-25639 · CVE-2026-25990 · CVE-2026-29074 · CVE-2026-30827 · CVE-2026-30922 · CVE-2026-26007 · CVE-2026-1615 · CVE-2026-28498 · CVE-2026-28802

RHSA-2026:7110: Red Hat Security Advisory: RHACS 4.8.10 security and bug fix update

CVE-2026-25128 · CVE-2026-25535 · CVE-2026-25755 · CVE-2026-25896 · CVE-2026-25940 · CVE-2026-26278 · CVE-2026-27942 · CVE-2026-29074 · CVE-2026-31898 · CVE-2026-31938 · CVE-2026-33036 · CVE-2026-33186

RHSA-2026:13553: Red Hat Security Advisory: Red Hat Ansible Automation Platform 2.5 Container Release Update

CVE-2025-69227 · CVE-2026-4800 · CVE-2026-23490 · CVE-2026-26007 · CVE-2026-27459 · CVE-2026-29074 · CVE-2026-30922 · CVE-2026-32274 · CVE-2026-32597 · CVE-2026-33154

RHSA-2026:6926: Red Hat Security Advisory: Red Hat Quay 3.9.20

CVE-2026-4599 · CVE-2026-4600 · CVE-2026-4601 · CVE-2026-4602 · CVE-2026-29063 · CVE-2026-29074 · CVE-2026-30922 · CVE-2026-32597

SUSE-SU-2026:2019-1: Security update for cockpit

CVE-2026-0775 · CVE-2026-29074 · CVE-2026-4802

RHSA-2026:24977: Red Hat Security Advisory: RHOAI 2.25.7 - Red Hat OpenShift AI

CVE-2025-14813 · CVE-2025-48956 · CVE-2025-61726 · CVE-2025-62718 · CVE-2025-69227 · CVE-2025-69228 · CVE-2026-1462 · CVE-2026-4800 · CVE-2026-6321 · CVE-2026-23490 · CVE-2026-24747 · CVE-2026-25048 · CVE-2026-25960 · CVE-2026-27489 · CVE-2026-27893 · CVE-2026-28500 · CVE-2026-28684 · CVE-2026-29063 · CVE-2026-29074 · CVE-2026-31958 · CVE-2026-32280 · CVE-2026-32597 · CVE-2026-32981 · CVE-2026-33186 · CVE-2026-33231 · CVE-2026-34986 · CVE-2026-34993 · CVE-2026-39892 · CVE-2026-40192 · CVE-2026-40895 · CVE-2026-41240 · CVE-2026-41242 · CVE-2026-42033 · CVE-2026-42035 · CVE-2026-42039 · CVE-2026-42041 · CVE-2026-42043

RHSA-2026:19375: Red Hat Security Advisory: Red Hat Quay 3.16.4

CVE-2025-61726 · CVE-2025-62718 · CVE-2026-2377 · CVE-2026-4427 · CVE-2026-4598 · CVE-2026-4599 · CVE-2026-4600 · CVE-2026-4601 · CVE-2026-4602 · CVE-2026-25679 · CVE-2026-27137 · CVE-2026-27459 · CVE-2026-27962 · CVE-2026-28802 · CVE-2026-29063 · CVE-2026-29074 · CVE-2026-30922 · CVE-2026-32280 · CVE-2026-32282 · CVE-2026-32286 · CVE-2026-32589 · CVE-2026-32590 · CVE-2026-32597 · CVE-2026-33186 · CVE-2026-33894 · CVE-2026-34986 · CVE-2026-39892 · CVE-2026-40192 · CVE-2026-40895 · CVE-2026-42033 · CVE-2026-42035 · CVE-2026-42039 · CVE-2026-42041 · CVE-2026-42043 · CVE-2026-42044

RHSA-2026:13826: Red Hat Security Advisory: Red Hat Developer Hub 1.9.4 release.

CVE-2025-62718 · CVE-2025-69534 · CVE-2026-1525 · CVE-2026-1526 · CVE-2026-1528 · CVE-2026-2229 · CVE-2026-3118 · CVE-2026-4800 · CVE-2026-4926 · CVE-2026-27601 · CVE-2026-27904 · CVE-2026-29063 · CVE-2026-29074 · CVE-2026-29186 · CVE-2026-32141 · CVE-2026-32280 · CVE-2026-32282 · CVE-2026-33228 · CVE-2026-33891 · CVE-2026-33894 · CVE-2026-33895 · CVE-2026-33896 · CVE-2026-39983 · CVE-2026-40175 · CVE-2026-40895

RHSA-2026:22465: Red Hat Security Advisory: Red Hat Quay 3.17.2

CVE-2025-62718 · CVE-2026-4427 · CVE-2026-27459 · CVE-2026-29063 · CVE-2026-29074 · CVE-2026-32280 · CVE-2026-32281 · CVE-2026-32282 · CVE-2026-32286 · CVE-2026-32589 · CVE-2026-32590 · CVE-2026-33186 · CVE-2026-33747 · CVE-2026-33894 · CVE-2026-34986 · CVE-2026-39892 · CVE-2026-40192 · CVE-2026-40895 · CVE-2026-42033 · CVE-2026-42035 · CVE-2026-42039 · CVE-2026-42041 · CVE-2026-42043 · CVE-2026-42044 · CVE-2026-44486 · CVE-2026-44487 · CVE-2026-44488 · CVE-2026-44492 · CVE-2026-44494 · CVE-2026-44495 · CVE-2026-44496

RHSA-2026:19712: Red Hat Security Advisory: RHOAI 3.3.3 - Red Hat OpenShift AI

CVE-2025-6242 · CVE-2025-12816 · CVE-2025-13465 · CVE-2025-15284 · CVE-2025-59057 · CVE-2025-61726 · CVE-2025-61729 · CVE-2025-62164 · CVE-2025-62718 · CVE-2025-64756 · CVE-2025-66031 · CVE-2025-66418 · CVE-2025-66448 · CVE-2025-66471 · CVE-2025-69223 · CVE-2025-69873 · CVE-2026-0846 · CVE-2026-0847 · CVE-2026-4800 · CVE-2026-21441 · CVE-2026-21884 · CVE-2026-22029 · CVE-2026-22778 · CVE-2026-23490 · CVE-2026-23745 · CVE-2026-24049 · CVE-2026-24486 · CVE-2026-24779 · CVE-2026-25639 · CVE-2026-25990 · CVE-2026-27893 · CVE-2026-28684 · CVE-2026-29063 · CVE-2026-29074 · CVE-2026-30922 · CVE-2026-31812 · CVE-2026-32597 · CVE-2026-32829 · CVE-2026-32981 · CVE-2026-33186 · CVE-2026-33231 · CVE-2026-33236 · CVE-2026-34986 · CVE-2026-40175 · CVE-2026-40192 · CVE-2026-40895

RHSA-2026:11856: Red Hat Security Advisory: Red Hat Quay 3.12.17

CVE-2026-4427 · CVE-2026-25679 · CVE-2026-27459 · CVE-2026-29074 · CVE-2026-32286 · CVE-2026-33186 · CVE-2026-34986

RHSA-2026:21017: Red Hat Security Advisory: Red Hat Quay 3.14.8

CVE-2025-61726 · CVE-2025-62718 · CVE-2026-2377 · CVE-2026-4427 · CVE-2026-25679 · CVE-2026-27459 · CVE-2026-29074 · CVE-2026-32280 · CVE-2026-32281 · CVE-2026-32282 · CVE-2026-32286 · CVE-2026-32589 · CVE-2026-32590 · CVE-2026-33186 · CVE-2026-33894 · CVE-2026-34986 · CVE-2026-39892 · CVE-2026-40192 · CVE-2026-40895 · CVE-2026-42033 · CVE-2026-42035 · CVE-2026-42039 · CVE-2026-42041 · CVE-2026-42043 · CVE-2026-42044

SUSE-SU-2026:2005-1: Security update for cockpit

CVE-2026-0775 · CVE-2026-29074 · CVE-2026-4802

RHSA-2026:11916: Red Hat Security Advisory: Red Hat Quay 3.10.21

CVE-2026-4427 · CVE-2026-25679 · CVE-2026-27459 · CVE-2026-29063 · CVE-2026-29074 · CVE-2026-32286 · CVE-2026-33186 · CVE-2026-34986

RHSA-2026:9742: Red Hat Security Advisory: Red Hat Developer Hub 1.8.6 release.

CVE-2025-62718 · CVE-2025-69534 · CVE-2025-69873 · CVE-2026-1525 · CVE-2026-1526 · CVE-2026-1528 · CVE-2026-2229 · CVE-2026-3118 · CVE-2026-4800 · CVE-2026-4926 · CVE-2026-25679 · CVE-2026-26996 · CVE-2026-27601 · CVE-2026-27904 · CVE-2026-29063 · CVE-2026-29074 · CVE-2026-29186 · CVE-2026-32141 · CVE-2026-33036 · CVE-2026-33228 · CVE-2026-33891 · CVE-2026-33894 · CVE-2026-33895 · CVE-2026-33896 · CVE-2026-39983 · CVE-2026-40175

RHSA-2026:5807: Red Hat Security Advisory: RHOAI 2.16.4 - Red Hat OpenShift AI

CVE-2024-25621 · CVE-2025-6193 · CVE-2025-12060 · CVE-2025-12638 · CVE-2025-12816 · CVE-2025-61726 · CVE-2025-61729 · CVE-2025-66031 · CVE-2025-66418 · CVE-2025-66626 · CVE-2025-68156 · CVE-2025-69873 · CVE-2026-1526 · CVE-2026-1528 · CVE-2026-2229 · CVE-2026-25223 · CVE-2026-25639 · CVE-2026-29074 · CVE-2026-32141

RHSA-2026:21772: Red Hat Security Advisory: Red Hat OpenShift Dev Spaces 3.28.0 Release.

CVE-2025-14813 · CVE-2025-68121 · CVE-2026-0636 · CVE-2026-1525 · CVE-2026-1526 · CVE-2026-1528 · CVE-2026-1605 · CVE-2026-2229 · CVE-2026-2327 · CVE-2026-5588 · CVE-2026-26996 · CVE-2026-27904 · CVE-2026-29074 · CVE-2026-30827 · CVE-2026-31802 · CVE-2026-32141 · CVE-2026-32280 · CVE-2026-32282 · CVE-2026-32305 · CVE-2026-33252 · CVE-2026-33810 · CVE-2026-34742 · CVE-2026-35051 · CVE-2026-39858 · CVE-2026-40477 · CVE-2026-40478 · CVE-2026-40611 · CVE-2026-40895 · CVE-2026-40912 · CVE-2026-40972 · CVE-2026-40973 · CVE-2026-40975 · CVE-2026-41240 · CVE-2026-42033 · CVE-2026-42035 · CVE-2026-42039 · CVE-2026-42041 · CVE-2026-42043 · CVE-2026-42044

RHSA-2026:6404: Red Hat Security Advisory: Red Hat Ansible Automation Platform 2.6 Container Release Update

CVE-2025-69223 · CVE-2025-69873 · CVE-2026-1615 · CVE-2026-25639 · CVE-2026-25990 · CVE-2026-26007 · CVE-2026-28498 · CVE-2026-28802 · CVE-2026-29074 · CVE-2026-30827 · CVE-2026-30922

RHSA-2026:13545: Red Hat Security Advisory: Red Hat Ansible Automation Platform 2.6 Container Release Update

CVE-2025-68121 · CVE-2025-69227 · CVE-2025-69228 · CVE-2026-0598 · CVE-2026-4800 · CVE-2026-4926 · CVE-2026-6266 · CVE-2026-12382 · CVE-2026-23490 · CVE-2026-24049 · CVE-2026-25679 · CVE-2026-26007 · CVE-2026-27137 · CVE-2026-27459 · CVE-2026-27606 · CVE-2026-29074 · CVE-2026-30922 · CVE-2026-31812 · CVE-2026-32274 · CVE-2026-32280 · CVE-2026-32597 · CVE-2026-33154 · CVE-2026-33810 · CVE-2026-35029 · CVE-2026-35030

RHSA-2026:6277: Red Hat Security Advisory: Red Hat Ansible Automation Platform 2.6 Product Security and Bug Fix Update

CVE-2025-61726 · CVE-2025-68121 · CVE-2025-69873 · CVE-2026-25639 · CVE-2026-25990 · CVE-2026-27904 · CVE-2026-29074

RHSA-2026:8493: Red Hat Security Advisory: Kiali 2.22.2 for Red Hat OpenShift Service Mesh 3.3

CVE-2025-62718 · CVE-2026-4800 · CVE-2026-25679 · CVE-2026-29063 · CVE-2026-29074 · CVE-2026-33186 · CVE-2026-34986 · CVE-2026-40175

Source published
Mar 6, 2026, 7:23:05 AM (timezone not stated)
Source modified
Sep 10, 2026, 12:04:59 PM (timezone not stated)
Saved here
13 Nov 2026 21:11:30 UTC
Source terms
ENISA EUVD · source terms and attribution apply

Original source record · Cite this exact observation · Complete original publisher JSON

Source: euvd · ENISA EUVD · source terms and attribution apply. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.

EUVD CVSS 3.1 · 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

nvd · CVE-2026-29074

Published

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.

Additional publisher context

NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON.

Source analysis status: Modified

Weakness classifications: CWE-776

Original publisher date fields

published: 2026-03-06T08:16:26.920

lastModified: 2026-09-10T13:18:03.533

1 source CPE criteria · context only
  • cpe:2.3:a:svgo:svgo:*:*:*:*:*:node.js:*:*

The original JSON retains the logical configuration operators, exclusions and version bounds.

Source published
6 Mar 2026 08:16:26 UTC
Source modified
10 Sep 2026 13:18:03 UTC
Saved here
25 Oct 2026 07:19:03 UTC
Source terms
NIST NVD usage terms; underlying source attribution retained

Original source record · Cite this exact observation · Complete original publisher JSON

Source: nvd · NIST NVD usage terms; underlying source attribution retained. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.

CVSS 3.1 · [email protected] · Secondary · 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

CVSS 3.1 · 0b0ca135-0b70-47e7-9f44-1890c2a1c46c · Secondary · 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

osv · GHSA-xpqw-6gx7-v673

Published

### Summary 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`. ### Details The upstream XML parser ([sax](https://www.npmjs.com/package/sax)) doesn't interpret custom XML entities by default. We pattern matched custom XML entities from the `DOCTYPE`, inserting them into `parser.ENTITIES`, and enabled `unparsedEntities`. This gives us the desired behavior of supporting SVGs with entities declared in the `DOCTYPE`. However, entities can reference other entities, which can enable small SVGs to explode exponentially when we try to parse them. #### Proof of Concept ```js import { optimize } from 'svgo'; /** Presume that this string was obtained in some other way, such as network. */ const original = ` <?xml version="1.0"?> <!DOCTYPE lolz [ <!ENTITY lol "lol"> <!ELEMENT lolz (#PCDATA)> <!ENTITY lol1 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;"> <!ENTITY lol2 "&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;"> <!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;"> <!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;"> <!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;"> <!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;"> <!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;"> <!ENTITY lol8 "&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;"> <!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;"> ]> <lolz>&lol9;</lolz> `; optimize(original); ``` ### Impact If SVGO is run on untrusted input (i.e., user uploaded to server-side application), then the untrusted SVG can effectively stall or crash the application with an SVG < 1 KB in size. It's unlikely to impact users who just use SVGO locally on their own SVGs or in build pipelines. ### Patches SVGO has patched v4.0.1, v3.3.3, and v2.8.1! However, it's strongly recommended to upgrade to v4 regardless, as previous versions are not officially supported anymore. ### Workarounds #### == 4.0.0 For v4, users do not specifically have to upgrade SVGO, though it is recommended to do so. A package manager can be used to upgrade sax recursively: For example: ```sh yarn up -R sax ``` New options were introduced upstream which makes the way SVGO parses SVGs safe by default. #### >= 2.1.0, <= 3.3.2 Users of v3 and v2 will have to take manual action. If users can't upgrade, they may be able to work around this as long as the project doesn't require support for custom XML entities, though it's not a simple flag. Parse the DOCTYPE directly and check for the presence of custom entities. If entities are present, throw/escape before passing them to SVGO. ```diff + import SAX from 'sax'; import { optimize } from 'svgo'; - const original =` + let original = ` <?xml version="1.0"?> <!DOCTYPE lolz [ <!ENTITY lol "lol"> <!ELEMENT lolz (#PCDATA)> <!ENTITY lol1 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;"> <!ENTITY lol2 "&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;"> <!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;"> <!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;"> <!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;"> <!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;"> <!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;"> <!ENTITY lol8 "&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;"> <!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;"> ]> <lolz>&lol9;</lolz> `; + const parser = SAX.parser(); + /** @param {string} doctype */ + parser.ondoctype = (doctype) => { + original = original.replace(doctype, ''); + } + parser.write(original); optimize(original); ``` ### Resources * [Wikipedia: Billion laughs attack](https://en.wikipedia.org/wiki/Billion_laughs_attack)

Source published
4 Mar 2026 22:59:28 UTC
Source modified
10 Sep 2026 03:50:41 UTC
Saved here
24 Oct 2026 13:17:17 UTC
Source terms
GitHub Advisory Database · CC-BY-4.0

Original source record · Cite this exact observation · Complete original publisher JSON

Source: osv · GitHub Advisory Database · CC-BY-4.0. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.

CVSS_V3 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Publisher rating · HIGH

ChangeIntel

An IT change radar: releases, security, known issues, retirements, documentation changes, and service status from public sources. Every item links to supporting evidence; dates and statuses can change after they are read.

Sources read 15 Nov 10:05 UTC · 273 of 275 readable · 269 fully read · documentation 469/469 current