Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as Contributor
-
DeliveryUpload crafted SVG bypassing sanitizer
-
ExploitStore payload in media library
-
ExecutionAdmin views SVG/post
-
PersistScript executes in admin origin
-
ImpactHijack privileged session
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated WordPress account with at least Contributor role (PR:L) on a site running Safe SVG <= 2.5.0, since the plugin's SVG upload/sanitization path is the injection point. Exploitation also requires user interaction (UI:R): a higher-privileged user (editor/admin) must view the malicious SVG or the post/media embedding it for the script to fire. Limiting factors: sites that do not grant untrusted users Contributor+ accounts, or that disable SVG uploads, are not realistically exposed; the scope change (S:C) means impact hinges on a privileged victim rendering the payload. |
| Impact | This is a moderate-risk, contributor-privilege stored XSS (CVSS 6.5, CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L). The network vector and low complexity are offset by two meaningful limiters: PR:L requires an authenticated Contributor-or-above account, and UI:R requires a victim (typically an editor or admin) to view the malicious content. The scope change (S:C) reflects that injected script executes in the wp-admin/site origin, potentially against higher-privileged users, which is the realistic escalation path. No EPSS score, KEV listing, or public PoC is provided in the input, so exploitation status is 'no public exploit identified at time of analysis' - this is not a signal of active, widespread abuse. Given Safe SVG's very large install base but the authentication and interaction prerequisites, this is a real but not urgent priority: patch on a normal cadence, prioritized on multi-author sites where untrusted Contributor accounts exist. No signals conflict; the CVSS vector is internally consistent with a contributor stored/SVG-based XSS. |
| Exploit ScenarioDerived | An attacker with a Contributor account uploads or crafts an SVG file that Safe SVG (<= 2.5.0) fails to fully sanitize, embedding JavaScript that survives its sanitization filter. When an administrator or editor previews the media, post, or SVG in wp-admin, the script executes in their authenticated session, enabling session theft or actions on their behalf. No public exploit code is identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 30, 2026
Stored cross-site scripting in the Safe SVG WordPress plugin through version 2.5.0 allows an authenticated user holding at least the Contributor role to embed script content in an uploaded SVG file, which then executes in the browser of a higher-privileged user (editor or administrator) who views the media item or a post containing it. The vulnerability carries a CVSS 3.1 base score of 6.5 (AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L), reflecting the requirement for a Contributor-level account and victim interaction, with impact scoped to the privileged user's session. No public exploit code was identified at time of analysis and there is no indication of confirmed active exploitation (CISA KEV); exposure is limited to sites that grant untrusted users Contributor-or-higher accounts or that leave SVG uploads enabled for such users.
RemediationAI
No vendor-released patch version is confirmed in the available data; the referenced Patchstack advisory should be monitored for an updated Safe SVG release, and the primary action is to upgrade the plugin above 2.5.0 as soon as a fixed version is published by 10up. Until then, the highest-value compensating controls are: remove Contributor-and-above upload privileges for untrusted users, or disable SVG uploads entirely for non-administrator roles (for example by hooking the upload_mimes filter or the plugin's own settings), accepting the trade-off that legitimate contributors lose SVG upload capability; and audit and re-sanitize or delete any SVG files already present in the media library, since stored payloads persist after the plugin is hardened. Site owners can further reduce impact by enforcing a Content-Security-Policy that disallows inline script on admin and front-end pages, though this may break other plugins or themes that rely on inline JavaScript, and by ensuring SVG media attachments are not rendered inline in privileged contexts (serving them as downloads or with a strict Content-Type). Administrators who previously granted Contributor accounts to untrusted parties should review and revoke them, since account provisioning is the main prerequisite for exploitation.
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
Safe SVG is a WordPress media-handling plugin published by 10up (CPE cpe:2.3:a:10up:safe_svg:*:*:*:*:*:*:*:*) whose purpose is to permit SVG uploads while sanitizing the markup so that scriptable content is stripped before the file is stored. SVG is an XML-based vector format and therefore a first-class script-execution vector: inline <script> elements, event-handler attributes (onload, onerror), <foreignObject>, external entity references, and javascript: URIs can all cause code to run when the file is rendered by a browser. The weakness is CWE-79 (Improper Neutralization of Input During Web Page Generation / Cross-site Scripting): the plugin's sanitization or output path fails to fully neutralize attacker-controlled markup for a user who is allowed to upload, so the payload persists in the WordPress media library and re-executes each time the SVG is rendered. Because the executed script runs in the context of the victim (an editor or administrator) rather than the injecting Contributor, the CVSS vector shows a scope change (S:C) even though the required privilege is low (PR:L) and user interaction is needed (UI:R).
Know when Safe Svg 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
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L
Contributor account needed (PR:L), victim must render the SVG (UI:R), script runs in the site origin against other users (S:C) with limited C/I/A impact typical of XSS.
Primary rating from Vendor (Patchstack).
CVSS VectorVendor: Patchstack
DescriptionCVE.org
Contributor Cross Site Scripting (XSS) in Safe SVG <= 2.5.0 versions.
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
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
The sanitisation step of the Safe SVG WordPress plugin before 1.9.10 can be bypassed by spoofing the content-type in the
The Safe SVG WordPress plugin before 2.2.6 has its sanitisation code is only running for paths that call wp_handle_uploa
A Denial Of Service vulnerability exists in the safe-svg (aka Safe SVG) plugin through 1.9.4 for WordPress, related to p
A Denial Of Service vulnerability exists in the safe-svg (aka Safe SVG) plugin through 1.9.4 for WordPress, related to u
Authenticated WordPress users with Contributor-level access can exploit an insecure direct object reference (IDOR) in th
EUVD-2026-89832
GHSA-754p-gr58-jx6v
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB