漏洞概述 漏洞名称:Reflected XSS via SVG namespace prefix bypass in SanitizeSVG (getDynamicIcon, unauthenticated) 漏洞编号:GHSA-73g7-88qr-jrgj 严重等级:High (8.6/10) CVE ID:CVE-2024-34005 CWE:CWE-79 漏洞原理 SiYuan v3.6.0 引入的 函数用于修复 端点的 XSS 漏洞,但可通过命名空间前缀元素名称绕过。例如使用 ,Go 的 HTML5 解析器将元素标签记录为 而非 ,因此小写标签检查 无法匹配,恶意元素被保留。当浏览器直接打开响应时,XML 解析器将前缀解析为 SVG 命名空间并执行嵌入脚本。 影响范围 受影响版本:<= v3.6.1 修复版本:v3.6.2 攻击向量:Network 攻击复杂度:Low 用户交互:Required 任何可通过本地网络访问的 SiYuan 实例均受影响。攻击者可构造恶意 URL,受害者浏览器打开后 JavaScript 在同源上下文执行,可调用任意 API 端点(读取笔记、导出数据、修改设置等),无需认证或前置访问。 POC 代码 解码后的 content 值: 修复方案 在比较前去除命名空间前缀: