Skip to main content
← All vulnerabilities
CVE-2026-31807GHSA-5HC8-QMG8-PW27GO-2026-4667

SiYuan has a SVG Sanitizer Bypass via `<animate>` Element — Unauthenticated XSS

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 3.5.10, 0.0.0-20260310025236-297bd526708f
1 Nuclei template
  • Exploitation: none
  • Automatable: yes
  • Technical impact: partial

Summary

SiYuan is a personal knowledge management system. Prior to 3.5.10, SiYuan's SVG sanitizer (SanitizeSVG) blocks dangerous elements (<script>, <iframe>, <foreignobject>) and removes on* event handlers and javascript: in href attributes. However, it does NOT block SVG animation elements (<animate>, <set>) which can dynamically set attributes to dangerous values at runtime, bypassing the static sanitization. This allows an attacker to inject executable JavaScript into the unauthenticated /api/icon/getDynamicIcon endpoint (type=8), creating a reflected XSS. This is a bypass of the fix for CVE-2026-29183 (fixed in v3.5.9). This vulnerability is fixed in v3.5.10.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: yes · Technical impact: partial

  3. Record last updated

Affected versions

  • siyuan-note siyuan

    fixed in 3.5.10

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

    fixed in 0.0.0-20260310025236-297bd526708f

References 2

GitHub · siyuan-note/siyuan

GitHub · projectdiscovery/nuclei-templates