SiYuan: Reflected XSS via SVG namespace prefix bypass in SanitizeSVG ( getDynamicIcon, unauthenticated )
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Active
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Cross-site scripting
- Confidentiality · integrity · availability
- High · High · Low
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-79.
Summary
SiYuan is a personal knowledge management system. From version 3.6.0 to before version 3.6.2, the SanitizeSVG function introduced in version 3.6.0 to fix XSS in the unauthenticated /api/icon/getDynamicIcon endpoint can be bypassed by using namespace-prefixed element names such as <x:script xmlns:x="http://www.w3.org/2000/svg">. The Go HTML5 parser records the element's tag as "x:script" rather than "script", so the tag check passes it through. The SVG is served with Content-Type: image/svg+xml and no Content Security Policy; when a browser opens the response directly, its XML parser resolves the prefix to the SVG namespace and executes the embedded script. This issue has been patched in version 3.6.2.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| siyuan-note | siyuan | 3.6.0 to before 3.6.2 | 3.6.2 | Patch available | CNA |
| — | github.com/siyuan-note/siyuan/kernel (Go) | before 0.0.0-20260330031106-f09953afc57a | 0.0.0-20260330031106-f09953afc57a | Patch available | GHSA-73g7-86qr-jrg3 |
- siyuan Vendorsiyuan-note Affected 3.6.0 to before 3.6.2 Fixed in 3.6.2 Patch available CNA
- github.com/siyuan-note/siyuan/kernel (Go) Vendor— Affected before 0.0.0-20260330031106-f09953afc57a Fixed in 0.0.0-20260330031106-f09953afc57a Patch available GHSA-73g7-86qr-jrg3
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:b3log:siyuan:*:*:*:*:*:*:*:* | 3.6.0 to before 3.6.2 | Vulnerable | siyuan-note |
- cpe:2.3:a:b3log:siyuan:*:*:*:*:*:*:*:* Versions 3.6.0 to before 3.6.2 Vulnerable ·siyuan-note
Remediation
- Fix · CNA siyuan (siyuan-note) Fixed in 3.6.2
- Fix · GHSA-73g7-86qr-jrg3 github.com/siyuan-note/siyuan/kernel (Go) Fixed in 0.0.0-20260330031106-f09953afc57a Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-34605
- 2026-10-03 Alias added: GHSA-73g7-86qr-jrg3
References
More siyuan-note Siyuan vulnerabilities
- TI-2026-26050 SiYuan has directory traversal within its publishing service CVSS 3.1CRITICAL 9.8
- TI-2026-25256 SiYuan: Authorization Bypass Allows Arbitrary SQL Execution via Search API CVSS 3.1CRITICAL 9.8
- TI-2024-35827 A SQL injection vulnerability was discovered in Siyuan 3.1.11 in /getHistoryItems. CVSS 3.1CRITICAL 9.8
- TI-2024-35826 A SQL injection vulnerability has been identified in Siyuan 3.1.11 via the ids array parameter in /batchGetBlockAttrs. CVSS 3.1CRITICAL 9.8
- TI-2024-35825 A SQL injection vulnerability has been identified in Siyuan 3.1.11 via the id parameter at /getAssetContent. CVSS 3.1CRITICAL 9.8
- TI-2024-35824 A SQL injection vulnerability has been identified in Siyuan 3.1.11 via the notebook parameter in /searchHistory. CVSS 3.1CRITICAL 9.8
Sources
- CVE-2026-34605 · CVE Program
- CVE-2026-34605 · NVD
- FIRST EPSS
- GHSA-73g7-86qr-jrg3 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences