
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-23847 is a reflected Cross-Site Scripting (XSS) vulnerability in SiYuan, a personal knowledge management system developed by b3log. The flaw exists in the /api/icon/getDynamicIcon endpoint, where the content query parameter is inserted directly into an SVG <text> tag without XML escaping, allowing attackers to inject and execute arbitrary JavaScript. All SiYuan versions prior to 3.5.4 are affected. The vulnerability was published on January 18–19, 2026, and carries a CVSS v3.1 base score of 6.1 (Medium) and a CVSS v4.0 base score of 2.1 (Low) (GitHub Advisory, Feedly).
The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically the absence of XML/HTML escaping on user-supplied input before it is embedded in a dynamically generated SVG response. The /api/icon/getDynamicIcon endpoint (type=8) constructs SVG images for text icons and inserts the content query parameter directly into the SVG <text> tag. Because the HTTP response Content-Type is image/svg+xml, browsers parse the response as XML and execute embedded scripts, allowing an attacker to break out of the SVG text context and inject arbitrary JavaScript tags. The fix, applied in commit 5c0cc375b47567e15edd2119066b09bb0aa18777, adds a call to util.RemoveScriptsInSVG(svg) when the editor setting AllowSVGScript is disabled (the new default) (GitHub Commit, GitHub Advisory).
Successful exploitation allows an attacker to execute arbitrary JavaScript in the victim's browser session context when the crafted SVG URL is opened. This can result in theft of session cookies, unauthorized actions performed as the logged-in user, and exposure of sensitive information stored within the SiYuan application. Availability is not directly impacted, but the vulnerability also prevents legitimate use of < or > characters in icon text fields (GitHub Advisory, Feedly).
A proof-of-concept (PoC) payload is publicly documented in the GitHub security advisory: test<script>alert(window.origin)</script>. Exploitation requires user interaction — a victim must open a crafted URL containing the malicious content parameter. There is no evidence of in-the-wild exploitation at this time, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The EPSS score is approximately 0.045–0.065%, placing it in the lower percentiles for exploitation likelihood (GitHub Advisory, Feedly).
content parameter, for example:http://<siyuan-host>/api/icon/getDynamicIcon?type=8&content=test<script>alert(window.origin)</script>&color=<color>image/svg+xml, the injected <script> tag executes, and the attacker's JavaScript runs in the context of the SiYuan origin — enabling session cookie theft, credential harvesting, or further actions on behalf of the victim (GitHub Advisory)./api/icon/getDynamicIcon with a content parameter containing HTML/XML tags (e.g., <script>, <img, onerror=) or URL-encoded equivalents (%3Cscript%3E)./api/icon/getDynamicIcon?type=8&content=... with suspicious or encoded payloads in the content field.Upgrade SiYuan to version 3.5.4 or later, which patches the vulnerability by stripping scripts from SVG output by default via the new AllowSVGScript editor setting (disabled by default). For organizations unable to patch immediately, restrict network access to the /api/icon/getDynamicIcon endpoint using a Web Application Firewall (WAF) or reverse proxy rules that block requests with HTML/script tags in query parameters. Additionally, educate users not to click on untrusted links pointing to SiYuan instances (GitHub Commit, GitHub Issue).
The vulnerability was reported by security researcher jaroslaw-wawiorko and disclosed via GitHub's security advisory process. The SiYuan maintainer (88250) responded promptly, opening issue #16844 and releasing the fix in version 3.5.4 shortly after the report. No significant broader media coverage or notable community debate has been observed beyond the standard advisory channels (GitHub Advisory, GitHub Issue).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."