Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit SVG markup with plain href to content field
-
DeliveryApplication sanitizer passes 'use' element due to missing href check
-
ExploitVictim loads page with sanitized content
-
ExecutionBrowser resolves SVG 'use' href to same-origin external SVG
-
PersistExternal SVG scripts execute in document context
-
ImpactAttacker achieves XSS (session theft or DOM manipulation)
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 | Exploitation requires the application to have explicitly overridden the default rails-html-sanitizer allowed-tag list to include at least one SVG reference element - specifically 'use' or 'feImage'. Applications using the default allowed-tag configuration are confirmed not affected. For XSS via script execution, the externally referenced SVG document must be same-origin with the sanitized document; cross-origin SVG references are blocked by browser same-origin policy and do not enable script execution. The 'feImage' path enables cross-origin image loading for tracking purposes only, not script execution. User interaction is required (CVSS UI:A): a victim must load or view the page containing the sanitized, attacker-controlled content. There is no authentication requirement on the attacker side (PR:N), but the attacker must have the ability to submit content that passes through the sanitizer - typically requiring an account or some form of content submission access on the target application. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:A, score 5.1) correctly reflects the moderate real-world risk: network-reachable with no special attack complexity, but user interaction is required and downstream system impact is limited to low confidentiality and low integrity changes (SC:L/SI:L). The single most significant limiting factor is that the vulnerability is only reachable when an application has explicitly overridden the default allowed-tag list to include SVG reference elements - a non-default, deliberate configuration choice. Applications on the default configuration are confirmed unaffected. There is no CISA KEV listing and no public exploit code identified, placing this in a low-urgency category for most operators. The EPSS signal is not provided in the input data and cannot be inferred. The most realistic harm is XSS via a same-origin SVG chained with existing attacker-controlled content, or pixel-tracking via feImage - neither a trivial nor a catastrophic outcome. A mid-sized development team running a Rails application with a custom rich-text or SVG-rendering feature should audit their PermitScrubber tag configuration before concluding they are unaffected, but the combination of non-default prerequisite, UI dependency, and absence of active exploitation means this is not a drop-everything emergency for the broad Rails ecosystem. |
| Exploit ScenarioDerived | An attacker submits user-generated content containing an SVG 'use' element with a plain 'href' pointing to a same-origin SVG file that includes a script payload. The sanitizer, misconfigured to allow 'use' and 'href', passes the element through intact. When a victim user views the sanitized content in their browser, the SVG 'use' reference is resolved, the external same-origin SVG is fetched and rendered, and its embedded script executes in the context of the sanitized document - enabling session theft, DOM manipulation, or credential harvesting. No public proof-of-concept code has been identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 13, 2026
Cross-site scripting in rails-html-sanitizer 1.0.3-1.7.0 allows external SVG references to bypass sanitization when applications use non-default allowed tags including SVG reference elements such as 'use' or 'feImage'. The PermitScrubber correctly blocked external hrefs via the legacy 'xlink:href' attribute but failed to apply the same restriction to the SVG 2 plain 'href' attribute, which modern browsers also honor. Exploitation via 'use' requires the external SVG to be same-origin for script execution; 'feImage' enables cross-origin image loading for user tracking. No public exploit or CISA KEV listing exists at time of analysis.
RemediationAI
Upgrade rails-html-sanitizer to version 1.7.1, which contains the corrected attribute name check in PermitScrubber and pins loofah to >= 2.25.2. The fix is available at https://github.com/rails/rails-html-sanitizer/releases/tag/v1.7.1 and the patch commit is https://github.com/rails/rails-html-sanitizer/commit/74dcb8053e6da9921246ce71b06ad9fd65b19586. If an immediate upgrade is not possible, the documented workaround is to remove SVG reference elements - specifically 'use' and 'feImage' - from any overridden allowed-tag lists in PermitScrubber configurations. This workaround eliminates the attack surface entirely at the cost of losing SVG reference rendering functionality. Applications relying on the default allowed tags require no action. Review all call sites passing custom 'tags:' arrays to safe_list_sanitize or PermitScrubber to confirm no SVG reference elements are included.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in rubygems
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
rails-html-sanitizer is the Ruby gem responsible for sanitizing HTML fragments in Rails applications, internally delegating to Loofah and Nokogiri for DOM-based scrubbing. The PermitScrubber class maintains a safelist 'SVG_ALLOW_LOCAL_HREF' of SVG elements (such as 'use' and 'feImage') that are permitted to carry href-style attributes only when they point to same-document fragment references (values starting with '#'). The flaw (CWE-79) originates from the attribute name check being hard-coded to 'xlink:href', the older XLink namespace form, while the SVG 2 specification introduced the unprefixed 'href' attribute as an equivalent. Loofah's 'SVG_HREF_ATTRIBUTES' collection covers both forms; the fix (commit 74dcb805) replaces the literal string comparison with a membership check against that collection. The companion dependency bump to loofah >= 2.25.2 and crass 1.0.7 reflects a coordinated fix documented in GHSA-9wjq-cp2p-hrgf.
Know when the next one hits your stack
- 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:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
AC:H reflects the non-default configuration prerequisite; PR:L because submitting content typically requires some application access; S:C and UI:R because victim browser action resolves the cross-document SVG reference.
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
1DescriptionCVE.org
rails-html-sanitizer is responsible for sanitizing HTML fragments in Rails applications. From 1.0.3 until 1.7.1, Rails::HTML::PermitScrubber restricted SVG reference elements in SVG_ALLOW_LOCAL_HREF only when they used xlink:href, even though browsers also accept the plain href attribute. Applications with non-default allowed tags that included SVG use or feImage elements could therefore permit external references; a same-origin external SVG referenced by use could execute scripts in the sanitized document's context, while feImage could load external images for tracking. Applications using the default allowed tags are not affected. This issue is fixed in version 1.7.1.
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.
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise High Availability Extension 15 SP7 | Not-Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP7 | Affected |
| SUSE Linux Enterprise High Availability Extension 16.0 | Affected |
| SUSE Linux Enterprise High Availability Extension 16.1 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Public Cloud 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| openSUSE Leap 16.0 | Affected |
| SUSE Linux Enterprise High Availability Extension 12 SP5 | Not-Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP4 | Not-Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP4 | Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP5 | Not-Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP5 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Module for Public Cloud 15 SP4 | Affected |
| SUSE Linux Enterprise Module for Public Cloud 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP5 | Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 12 SP5 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Affected |
| SUSE Manager Proxy 4.3 | Affected |
| SUSE Manager Proxy LTS 4.3 | Affected |
| SUSE Manager Retail Branch Server 4.3 | Affected |
| SUSE Manager Retail Branch Server LTS 4.3 | Affected |
| SUSE Manager Server 4.3 | Affected |
| SUSE Manager Server LTS 4.3 | Affected |
| SUSE CaaS Platform 4.0 | Affected |
| SUSE Enterprise Storage 6 | Affected |
| SUSE Enterprise Storage 7 | Affected |
| SUSE Enterprise Storage 7.1 | Affected |
| SUSE Linux Enterprise High Availability Extension 12 SP4 | Not-Affected |
| SUSE Linux Enterprise High Availability Extension 15 | Not-Affected |
| SUSE Linux Enterprise High Availability Extension 15 | Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP1 | Not-Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP1 | Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP2 | Not-Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP2 | Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP3 | Not-Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP3 | Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP6 | Not-Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP6 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP1 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP1-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP1-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP6 | Affected |
| SUSE Linux Enterprise Module for Public Cloud 15 SP1 | Affected |
| SUSE Linux Enterprise Module for Public Cloud 15 SP2 | Affected |
| SUSE Linux Enterprise Module for Public Cloud 15 SP3 | Affected |
| SUSE Linux Enterprise Module for Public Cloud 15 SP6 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP1 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP2 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP2 | Affected |
| SUSE Linux Enterprise Real Time 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP1 | Affected |
| SUSE Linux Enterprise Server 15 SP1-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP1-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP2 | Affected |
| SUSE Linux Enterprise Server 15 SP2-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP2-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP3 | Affected |
| SUSE Linux Enterprise Server 15 SP3-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP1 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP2 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | Affected |
| SUSE Manager Proxy 4.0 | Affected |
| SUSE Manager Proxy 4.1 | Affected |
| SUSE Manager Proxy 4.2 | Affected |
| SUSE Manager Retail Branch Server 4.0 | Affected |
| SUSE Manager Retail Branch Server 4.1 | Affected |
| SUSE Manager Retail Branch Server 4.2 | Affected |
| SUSE Manager Server 4.0 | Affected |
| SUSE Manager Server 4.1 | Affected |
| SUSE Manager Server 4.2 | Affected |
| openSUSE Leap 15.3 | Not-Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.4 | Not-Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Not-Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Not-Affected |
| openSUSE Leap 15.6 | Affected |
| openSUSE Leap 15.6 | Affected |
| suse/rmt-server | Affected |
EUVD-2026-58191
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB