Vulnerability · RUSTSEC-2026-0345
Untrusted labels can inject SVG attributes, CSS values, and terminal escape sequences
Published Aug 7, 2026 · catalog updated Oct 13, 2026 · RustSec Rust
Open the advisory
Exploitation likelihood is not on this record for RUSTSEC-2026-0345. A missing EPSS score is not a low risk. Compare RustSec Rust with the linked advisory before you change production.
Gaps on this record
- No vendor fix or required action is stored. Compare the linked advisory before you change production.
- EPSS is missing. A missing score is not a low risk.
- Severity
- Unknown—
- Known exploitation
- Not in CISA/VulnCheck KEV
- EPSS
- Awaiting synchronization with FIRST
- Remediation
- Advisory link
- Affected products
- crates.io kuva
Affected versions of wrote data-derived strings straight into rendered output without escaping them for the target format. Applications that plot untrusted input (column headers, category and group names, series labels) were affected in three places. **1. SVG attribute injection / stored XSS (CWE-79).** When SVG interactivity was enabled via , group and category labels were formatted directly into and attributes through the raw string, which the SVG backend emitted verbatim. The backend's escaping helper covered text nodes and but not attributes. A label containing a double quote could close the attribute and add another, for example an event handler. Opening the resulting SVG in a browser, or inlining it into an HTML page, executed the injected script. Reachable from scatter, line, bar, and strip plots, and from legends. **2. Unvalidated CSS and style attribute values (CWE-74).** wrote arbitrary strings into and , was emitted raw from the public dash-pattern builders, and the SVG root and plus the background rectangle were written raw from layout and theme configuration. Applications that forwarded user-supplied style values into the plotting API could have those values break out of the attribute they were written into. **3. Terminal escape sequence injection (CWE-150).** stored label characters unfiltered and emitted each one unconditionally when producing its ANSI string. Control characters in a label, including ESC, OSC sequences, and carriage returns, were written straight to the operator's terminal. Depending on the emulator this allows forged or misleading output, window title and clipboard manipulation, and reaching terminal emulator vulnerabilities that are triggered by escape sequences. The fix routes every data-derived string through format-appropriate escaping. A single helper XML-escapes , , , , and , and is applied at each raw-attribute site: the interpolations, the catch-all, and the SVG backend's , , and background writes. replaces control characters
Are you affected?
Enter the version you run. The result uses only the ranges stored on this record.
The check returns affected, not affected, or incomplete. It does not guess a version that is missing from the record.
- crates.io kuva0.1.5 → 0.3.1
How to fix RUSTSEC-2026-0345
Recommended remediation
A patch or advisory reference is linked. Open the original publisher for availability by product version.
Official advisories
What to do
Three questions, each answered from this record only. Confirm the vendor advisory before you patch.
Should you patch?
Exploitation likelihood is not on this record for RUSTSEC-2026-0345. A missing EPSS score is not a low risk. Compare RustSec Rust with the linked advisory before you change production.
Which versions are affected?
Compare what you have installed with 0.1.5 → 0.3.1. Compare the installed version with the linked vendor advisory before you change production.
What should an analyst verify?
No weakness class is stored. EPSS is not on this record yet. There is no CISA KEV listing. No Exploit-DB or Metasploit reference is linked. Use the source links for the original advisory.
Code
The project this record applies to. Exploit listings stay in References.
Timeline
Detection, updates, and resolution for this record.
Aug 7, 2026 · Catalog
Detected
Affected versions of wrote data-derived strings straight into rendered output without escaping them for the target format. Applications that plot untrusted input (column headers, category and group names, series labels) were affected in three places. **1. SVG attribute injection / stored XSS (CWE-79).** When SVG interactivity was enabled via , group and category labels were formatted directly into
Oct 13, 2026 · Catalog
Fix available
crates.io kuva 0.1.5 → 0.3.1
Oct 13, 2026 · Catalog
Updated
Affected versions of wrote data-derived strings straight into rendered output without escaping them for the target format. Applications that plot untrusted input (column headers, category and group names, series labels) were affected in three places. **1. SVG attribute injection / stored XSS (CWE-79).** When SVG interactivity was enabled via , group and category labels were formatted directly into
Sources
- GitHub Advisory DatabasePackage advisoryGHSA-3c48-9r95-hqhr
GitHub Advisory Database record mirrored by OSV.
github.com - OpenSSF OSV / OSV ScannerPackage advisoryRUSTSEC-2026-0345
Untrusted labels can inject SVG attributes, CSS values, and terminal escape sequences
osv.dev - RustSec Advisory DBVendor advisoryRUSTSEC-2026-0345
Affected versions of wrote data-derived strings straight into rendered output without escaping them for the target format. Applications that plot untrusted input (column headers, category and group names, series labels) were affected in three places. **1. SVG attribute injection
crates.io
References
Freshness
Last verified in this catalog Oct 13, 2026. Significant claims (KEV, EPSS, CVSS, affected ranges) come from the source rows above — open the original publisher for the authoritative advisory.