CVE-2026-41421SiYuan是一款开源的个人知识管理系统。在3.6.5版本之前,SiYuan桌面版在处理通知消息时存在安全漏洞。系统通过POST /api/notification/pushMsg接口接收用户控制的消息内容,并在前端使用insertAdjacentHTML将其作为原始HTML渲染。由于SiYuan桌面版的Electron窗口配置不当,攻击者可以通过构造恶意的HTML消息执行JavaScript代码,进而直接访问Node.js API,最终导致在受害者设备上执行任意桌面代码。
该漏洞源于SiYuan桌面版对通知消息的不安全渲染。攻击者可以向POST /api/notification/pushMsg端点发送包含恶意JS代码的HTML载荷。后端接收并广播该消息,前端在message.ts文件中通过insertAdjacentHTML方法将其直接插入DOM。虽然这本质上是一个存储型XSS漏洞,但由于Electron应用的主进程配置存在严重缺陷——具体为nodeIntegration: true、contextIsolation: false以及webSecurity: false,渲染进程中的JavaScript代码可以直接访问Node.js环境。这意味着攻击者不仅限于窃取Cookie或DOM操作,还可以利用Node.js的child_process等模块执行系统命令,从而实现从Web上下文到本地操作系统层面的权限提升,完全控制用户的桌面环境。