Skip to main content
← All vulnerabilities
CVE-2026-34605GO-2026-5201GHSA-73G7-86QR-JRG3

SiYuan: Reflected XSS via SVG namespace prefix bypass in SanitizeSVG ( getDynamicIcon, unauthenticated )

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 3.6.2, 0.0.0-20260330031106-f09953afc57a
1 Nuclei template
  • Exploitation: poc
  • Automatable: no
  • Technical impact: total

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.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: poc · Automatable: no · Technical impact: total

  3. Record last updated

Affected versions

  • siyuan-note siyuan

    From 3.6.0 · fixed in 3.6.2

  • github.com/siyuan-note/siyuan/kernelGo

    fixed in 0.0.0-20260330031106-f09953afc57a

References 4

GitHub · siyuan-note/siyuan

GitHub · projectdiscovery/nuclei-templates