CVE-2026-23852SiYuan是一款流行的个人知识管理系统。2026年1月披露的CVE-2026-23852漏洞影响3.5.4之前的所有版本。该漏洞为存储型跨站脚本攻击(Stored XSS),攻击者可通过/api/attr/setBlockAttrs API接口向block的icon属性注入任意HTML属性。由于动态图标功能在渲染时未对payload进行充分消毒处理,导致恶意脚本被持久化存储。当其他用户访问包含恶意内容的页面时,存储的XSS payload会自动执行。在桌面环境中,结合Electron框架的特性,此漏洞可进一步利用导致远程代码执行(RCE)。该漏洞绕过了此前针对issue #15970的XSS修复,属于历史修复的不完整补救。漏洞CVSS评分高达9.6,属于严重级别,对使用思源笔记的用户构成重大安全威胁。
漏洞存在于SiYuan的块属性设置功能中。攻击者构造恶意请求调用/api/attr/setBlockAttrs接口,在icon属性中注入包含JavaScript代码的HTML属性。例如,可注入onerror、onload等事件处理器或使用svg标签执行任意脚本。payload示例:icon属性设置为包含事件监听器的img标签或svg元素。动态图标功能在渲染block时直接使用icon属性值而未进行HTML转义或内容安全策略过滤,导致注入的脚本在用户浏览器中执行。由于icon属性值被持久化存储在数据库中,此XSS为存储型,影响所有查看该内容的用户。在Electron桌面应用中,nodeIntegration默认开启,攻击者可通过XSS进一步利用Electron API执行系统命令,实现完整的RCE攻击链。修复版本3.5.4增加了对icon属性的输入验证和输出消毒。