Impact
SVGO, a popular SVG optimizer used in Node.js projects, failed to filter executable links in its removeScripts plugin from versions 1.0.0 through 2.8.4, 3.3.5, and 4.1.0. The plugin ignored namespace‑prefixed anchors (e.g., svg:a) and did not strip control characters before validating URL schemes. Consequently, a crafted SVG could contain an executable link that bypasses the filter, allowing a victim who activates the link within an active browser context to run script in the SVG’s origin, thereby exposing data, altering content, or performing actions as the victim. The weakness corresponds to CWE‑184 (Blind Index Modification) and CWE‑79 (Cross‑Site Scripting).
Affected Systems
The flaw affects the SVGO library (svg:svgo) and applies to all releases from v1.0.0 up to and including v2.8.4, v3.3.5, and v4.1.0. Systems that process untrusted SVG files and serve the output in browsers are at risk.
Risk and Exploitability
The vulnerability carries a CVSS score of 8.2, indicating high severity. EPSS data is unavailable, and the flaw is not listed in the CISA KEV catalog. The attack vector is application‑side processing of attacker‑controlled SVG content that is later rendered in a browser; it does not require privileged access or additional exploitation steps. Once an SVG containing the hidden link is delivered to a user’s browser, activation of that link allows the attacker to execute code with the same origin privileges as the victim. Due to the widespread use of SVGO in front‑end build pipelines, the risk of exploitation is significant especially in environments that expose optimized SVGs to end users.
OpenCVE Enrichment