Skip to content
OpenAdvisories
Medium · 6.1 CVE-2026-84369 EUVD-2026-69651GHSA-4vpr-x523-8j87

SVGO: removeScripts incompletely sanitizes executable HTML in SVG foreignObject elements

Published Sep 1, 2026 · Updated Sep 2, 2026 · Assigned by GitHub_M

Description

SVGO, short for SVG Optimizer, is a Node.js library and command-line application for optimizing SVG files. From version 1.0.0 until versions 2.8.4, 3.3.5, and 4.1.0, the opt-in removeScripts plugin, named removeScriptElement in versions 2 and 3 and implemented in plugins/removeScripts.js, removes SVG and XHTML script elements but does not inspect executable HTML content inside SVG foreignObject elements. Event-handler attributes such as onload and onbeforetoggle, srcdoc documents, and executable URLs in the action, data, formaction, href, and src attributes can remain in attacker-controlled SVG input. When an application uses the plugin as its only protection and serves the optimized SVG in an active browser context, the payload can execute script in the viewer's origin, expose data, modify content, or perform actions as the victim. This issue is fixed in versions 2.8.4, 3.3.5, and 4.1.0.

Affected products

VendorProductAffectedFixed
svg svgo >= 1.0.0, < 2.8.4, >= 3.0.0, < 3.3.5, >= 4.0.0, < 4.1.0 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 node-svgo 3.3.5+ds-1 —
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed agama-web-ui 25+475.275dd4727-56.1 openSUSE-SU-2026:12424-1
openSUSE Tumbleweed velociraptor 0.76.7.0.git145.b60ef1146-1.1 openSUSE-SU-2026:12070-1

Affected packages

EcosystemPackageAffectedFixedRecord
npm svgo >= 1.0.0, < 2.8.4 2.8.4 GHSA-4vpr-x523-8j87
npm svgo >= 3.0.0, < 3.3.5 3.3.5 GHSA-4vpr-x523-8j87
npm svgo >= 4.0.0, < 4.1.0 4.1.0 GHSA-4vpr-x523-8j87

Advisories 2

References