CVE-2026-31807: CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') in siyuan-note siyuan
CVE-2026-31807 is a reflected cross-site scripting (XSS) vulnerability in SiYuan, a personal knowledge management system, affecting versions prior to 3. 5. 10. The issue arises because the SVG sanitizer fails to block SVG animation elements like <animate> and <set>, which can dynamically inject malicious JavaScript at runtime, bypassing static sanitization. This vulnerability allows unauthenticated attackers to inject executable scripts via the /api/icon/getDynamicIcon endpoint (type=8). It is a bypass of a previous fix (CVE-2026-29183) and has a CVSS score of 6. 4 (medium severity). No known exploits are currently reported in the wild. The vulnerability is fixed in version 3. 5.
AI Analysis
Technical Summary
CVE-2026-31807 is a reflected cross-site scripting vulnerability in the SiYuan personal knowledge management system, specifically affecting versions prior to 3.5.10. SiYuan employs an SVG sanitizer (SanitizeSVG) designed to block dangerous SVG elements such as <script>, <iframe>, and <foreignobject>, as well as removing event handlers and javascript: URIs in href attributes. However, the sanitizer does not block SVG animation elements like <animate> and <set>, which can dynamically modify SVG attributes at runtime. This dynamic capability allows attackers to inject and execute arbitrary JavaScript code despite the static sanitization measures. The vulnerability is exploitable without authentication via the /api/icon/getDynamicIcon endpoint with a specific parameter (type=8), resulting in reflected XSS. This vulnerability bypasses the previous fix for CVE-2026-29183, indicating incomplete sanitization logic. The issue has been addressed in SiYuan version 3.5.10 by enhancing SVG sanitization to block these animation elements. The CVSS 4.0 score is 6.4, reflecting a medium severity with network attack vector, low attack complexity, no privileges required, but requiring user interaction. No known exploits have been reported in the wild as of the publication date.
Potential Impact
The primary impact of this vulnerability is the potential for attackers to execute arbitrary JavaScript in the context of the victim's browser when they access a crafted URL or resource. This can lead to session hijacking, theft of sensitive information, unauthorized actions performed on behalf of the user, or distribution of malware. Since the vulnerability is reflected XSS and requires user interaction, the attacker must convince the victim to visit a malicious link or resource. However, because the vulnerable endpoint is unauthenticated and exposed, the attack surface is broad. Organizations using SiYuan versions prior to 3.5.10 risk compromise of user data confidentiality and integrity, especially if the system is used in environments with sensitive knowledge or collaborative data. The bypass of a previous fix indicates that attackers may have had a prolonged window to exploit this issue if they discovered it. While no exploits are currently known in the wild, the medium severity and ease of exploitation warrant prompt remediation to prevent potential targeted attacks or phishing campaigns leveraging this vulnerability.
Mitigation Recommendations
The primary mitigation is to upgrade SiYuan to version 3.5.10 or later, where the SVG sanitizer has been improved to block SVG animation elements that enable this bypass. Until the upgrade can be applied, organizations should consider implementing web application firewalls (WAFs) with rules to detect and block suspicious SVG payloads containing animation elements like <animate> and <set>. Additionally, restricting access to the /api/icon/getDynamicIcon endpoint or limiting its exposure to trusted users can reduce risk. Security teams should audit logs for unusual requests to this endpoint and monitor for phishing attempts that might leverage this vulnerability. Developers should review and enhance input sanitization routines to handle dynamic SVG elements comprehensively and consider adopting well-maintained third-party sanitization libraries with proven effectiveness against SVG-based XSS. User education on avoiding suspicious links and enabling browser security features such as Content Security Policy (CSP) can further mitigate exploitation impact.
Affected Countries
United States, Germany, China, Japan, South Korea, United Kingdom, France, Canada, Australia, Netherlands
CVE-2026-31807: CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') in siyuan-note siyuan
Description
CVE-2026-31807 is a reflected cross-site scripting (XSS) vulnerability in SiYuan, a personal knowledge management system, affecting versions prior to 3. 5. 10. The issue arises because the SVG sanitizer fails to block SVG animation elements like <animate> and <set>, which can dynamically inject malicious JavaScript at runtime, bypassing static sanitization. This vulnerability allows unauthenticated attackers to inject executable scripts via the /api/icon/getDynamicIcon endpoint (type=8). It is a bypass of a previous fix (CVE-2026-29183) and has a CVSS score of 6. 4 (medium severity). No known exploits are currently reported in the wild. The vulnerability is fixed in version 3. 5.
AI-Powered Analysis
Technical Analysis
CVE-2026-31807 is a reflected cross-site scripting vulnerability in the SiYuan personal knowledge management system, specifically affecting versions prior to 3.5.10. SiYuan employs an SVG sanitizer (SanitizeSVG) designed to block dangerous SVG elements such as <script>, <iframe>, and <foreignobject>, as well as removing event handlers and javascript: URIs in href attributes. However, the sanitizer does not block SVG animation elements like <animate> and <set>, which can dynamically modify SVG attributes at runtime. This dynamic capability allows attackers to inject and execute arbitrary JavaScript code despite the static sanitization measures. The vulnerability is exploitable without authentication via the /api/icon/getDynamicIcon endpoint with a specific parameter (type=8), resulting in reflected XSS. This vulnerability bypasses the previous fix for CVE-2026-29183, indicating incomplete sanitization logic. The issue has been addressed in SiYuan version 3.5.10 by enhancing SVG sanitization to block these animation elements. The CVSS 4.0 score is 6.4, reflecting a medium severity with network attack vector, low attack complexity, no privileges required, but requiring user interaction. No known exploits have been reported in the wild as of the publication date.
Potential Impact
The primary impact of this vulnerability is the potential for attackers to execute arbitrary JavaScript in the context of the victim's browser when they access a crafted URL or resource. This can lead to session hijacking, theft of sensitive information, unauthorized actions performed on behalf of the user, or distribution of malware. Since the vulnerability is reflected XSS and requires user interaction, the attacker must convince the victim to visit a malicious link or resource. However, because the vulnerable endpoint is unauthenticated and exposed, the attack surface is broad. Organizations using SiYuan versions prior to 3.5.10 risk compromise of user data confidentiality and integrity, especially if the system is used in environments with sensitive knowledge or collaborative data. The bypass of a previous fix indicates that attackers may have had a prolonged window to exploit this issue if they discovered it. While no exploits are currently known in the wild, the medium severity and ease of exploitation warrant prompt remediation to prevent potential targeted attacks or phishing campaigns leveraging this vulnerability.
Mitigation Recommendations
The primary mitigation is to upgrade SiYuan to version 3.5.10 or later, where the SVG sanitizer has been improved to block SVG animation elements that enable this bypass. Until the upgrade can be applied, organizations should consider implementing web application firewalls (WAFs) with rules to detect and block suspicious SVG payloads containing animation elements like <animate> and <set>. Additionally, restricting access to the /api/icon/getDynamicIcon endpoint or limiting its exposure to trusted users can reduce risk. Security teams should audit logs for unusual requests to this endpoint and monitor for phishing attempts that might leverage this vulnerability. Developers should review and enhance input sanitization routines to handle dynamic SVG elements comprehensively and consider adopting well-maintained third-party sanitization libraries with proven effectiveness against SVG-based XSS. User education on avoiding suspicious links and enabling browser security features such as Content Security Policy (CSP) can further mitigate exploitation impact.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-03-09T16:33:42.913Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 69b089ca2f860ef943c11e8c
Added to database: 3/10/2026, 9:14:50 PM
Last enriched: 3/10/2026, 9:29:53 PM
Last updated: 3/10/2026, 11:42:07 PM
Views: 5
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
External Links
Need more coverage?
Upgrade to Pro Console in Console -> Billing for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.