GHSA-4mx9-3c2h-hwhg
Critical · 9.3SiYuan has a SanitizeSVG bypass via data:text/xml in getDynamicIcon (incomplete fix for CVE-2026-29183)
CVSS
9.3
EPSS
—
Published
Mar 17, 2026
CISA due date
—
The record
Reflected XSS on an unauthenticated endpoint. Victim visits the crafted URL, then clicks the injected link in the SVG. No auth needed to craft the URL. Docker deployments where SiYuan is network-accessible are the clearest target -- the endpoint is reachable directly. In the Electron desktop app, impact depends on `nodeIntegration`/`contextIsolation` settings. Issue #15970 ("XSS to RCE") explored that path. The deeper issue: the blocklist approach for data: URIs is fragile. `text/xml` and `application/xml` are the gap today, but other MIME types that render active content could surface. An allowlist of safe image types covers the known vectors and future MIME type additions.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-32940 SiYuan is a personal knowledge management system. Same vulnerability
- CVE-2026-114729 Roundcube Webmail before 1.6.20 and 1.7.x before 1.7.5 is affected by a remote content… CWE-184
- CVE-2026-114728 Roundcube Webmail before 1.6.20 and 1.7.x before 1.7.5 is affected by a remote content… CWE-184
- CVE-2026-106445 Handlebars provides the power necessary to let users build semantic templates. CWE-184
- CVE-2026-102828 simple-git, an interface for running git commands in any node.js application, enables… CWE-184
- CVE-2026-102829 simple-git, an interface for running git commands in any node.js application, enables… CWE-184
- CVE-2026-87985 An arbitrary code execution vulnerability in Mistral Vibe allows an attacker to bypass… CWE-184
- CVE-2026-87911 An OS command injection weakness in the read-only enforcement of the SQL validation… CWE-184