Impact
The vulnerability is in the CSS scrubber of the Elixir library html_sanitize_ex. The scrubber applies its property–value allowlist only to substrings that match a property: value pattern; content that does not match this pattern bypasses filtering and is copied unchanged to the output. As a result, an attacker can inject CSS at‑rules such as @import url(//attacker.example/style.css) directly into a <style> element, which is preserved by the scrubber while a similar URL inside a background: url(...) declaration is removed. Element boundaries are resolved before scrubbing, so the injected content remains inside the <style> element and no script execution occurs. The affected release range is html_sanitize_ex 0.3.1 to 1.4.4 and 1.5.0‑rc.0 to 1.5.3.
Affected Systems
The issue affects the Elixir library html_sanitize_ex distributed by rrrene. Vulnerable versions are 0.3.1 through 1.4.4 and 1.5.0‑rc.0 through 1.5.3. Any deployment that relies on these versions to sanitize user‑supplied HTML containing <style> elements is impacted.
Risk and Exploitability
The CVSS score of 2.3 indicates low severity. The EPSS score is reported as < 1%, which indicates a very low exploit likelihood. The vulnerability is not listed in CISA’s KEV catalog, and there are no publicly documented exploits. The likely attack vector is an unauthenticated attacker delivering crafted HTML to a downstream component that sanitizes the content with html_sanitize_ex. Because the bug allows loading of external stylesheets via @import but does not enable script execution, the risk is limited compared to full XSS, yet it can still be leveraged for phishing, covert data exfiltration, or malicious page presentation. A Content-Security-Policy with style-src none would block external stylesheet loading, though inline rules would still apply.
OpenCVE Enrichment