CVE-2026-23847

SVG Injection: When "Dynamic Icons" Become Dynamic Threats in SiYuan

Amit Schendel
Amit Schendel
Senior Security Researcher

Jan 21, 2026·5 min read·12 visits

Executive Summary (TL;DR)

SiYuan versions prior to 3.5.4 contain a Reflected XSS vulnerability in the dynamic icon generator. By injecting malicious XML into the `content` parameter of the `/api/icon/getDynamicIcon` endpoint, attackers can execute arbitrary JavaScript in the victim's browser context. The issue was patched by implementing an SVG script stripper.

SiYuan, a local-first personal knowledge management tool, unfortunately managed to manage knowledge a bit too dynamically. A reflected Cross-Site Scripting (XSS) vulnerability allowed attackers to turn innocent-looking icon requests into malicious script execution vectors via improper SVG handling.

Fix Analysis (1)

Technical Appendix

CVSS Score
2.1/ 10
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:P
EPSS Probability
0.04%
Top 86% most exploited

Affected Systems

SiYuan < 3.5.4

Affected Versions Detail

Product
Affected Versions
Fixed Version
SiYuan
siyuan-note
< 3.5.43.5.4
AttributeDetail
CWE IDCWE-79
CVSS v4.02.1 (Low)
Attack VectorNetwork
Exploit StatusPoC Available
MIME Typeimage/svg+xml
Vulnerable Paramcontent
CWE-79
Cross-site Scripting (XSS)

Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Vulnerability Timeline

Vulnerability reported in GitHub Issue #16844
2026-01-16
Patch commit 5c0cc37 pushed
2026-01-18
CVE-2026-23847 published
2026-01-19