Impact
SiYuan exposes an unauthenticated dynamic icon API that returns SVG content without proper escaping. When the request parameter "type=8" is used, attacker‑controlled data can be embedded into the SVG output, allowing injection of executable scripts or HTML event handlers such as onerror. The vulnerability permits arbitrary JavaScript execution in the context of the SiYuan web origin, which can be used to hijack sessions, modify data, or exfiltrate sensitive information. The impact is significant due to the potential for remote code execution and the ability to chain actions after a user authenticates. The weakness is classified as Reflected XSS (CWE‑79).
Affected Systems
The issue affects all installations of the Siyuan personal knowledge management system using versions prior to 3.5.9. The vulnerability is present in the dynamic icon endpoint "GET /api/icon/getDynamicIcon" when the type parameter is set to 8. No specific version numbers beyond the cut‑off are listed; administrators should verify that their deployment is 3.5.9 or newer.
Risk and Exploitability
The CVSS score of 9.3 indicates critical severity, while the EPSS score of less than 1% suggests low current exploitation probability. The vulnerability is not listed in the CISA KEV catalog. Attackers can exploit the flaw by simply visiting a crafted URL that targets the unauthenticated endpoint, thereby delivering malicious SVG to any user who opens the link. Once a user initiates the request, the injected code runs with the privileges of the logged‑in account, enabling further authenticated API actions and data exfiltration.
OpenCVE Enrichment
Github GHSA