IPBUF安全漏洞报告
English
CVE-2026-34585 CVSS 8.6 高危

CVE-2026-34585 SiYuan存储型XSS导致RCE漏洞

披露日期: 2026-03-31

漏洞信息

漏洞编号
CVE-2026-34585
漏洞类型
Stored XSS, Remote Code Execution
CVSS评分
8.6 高危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
SiYuan

相关标签

XSSRCESiYuanElectronCVE-2026-34585

漏洞概述

SiYuan是一款个人知识管理系统。在3.6.2版本之前,该系统存在一个高危漏洞。攻击者可以利用精心设计的块属性值,通过混合HTML实体和原始特殊字符来绕过服务端的属性转义机制。攻击者首先创建包含恶意IAL值的.sy文档,并将其打包为.sy.zip文件。诱导受害者通过SiYuan的导入功能加载该文件。一旦受害者打开被导入的笔记,恶意代码将打破原始HTML上下文限制并注入事件处理程序,触发存储型跨站脚本攻击(XSS)。在Electron桌面客户端环境下,由于注入的JavaScript拥有Node/Electron API的访问权限,该漏洞可被进一步利用以实现远程代码执行(RCE)。官方已在3.6.2版本中修复此问题。

技术细节

该漏洞的根源在于SiYuan服务端对块属性(IAL)的过滤逻辑不完善。正常情况下,特殊字符会被转义以防止HTML注入。然而,当攻击者构造包含HTML实体(如& quot;)与原始引号混合的特定Payload时,转义函数无法正确闭合属性引号,导致Payload逃逸出属性值范围。攻击者利用这一点在.sy文件中的块级元素后追加恶意事件处理器(如onload、onerror等)。当受害者在Electron客户端渲染该文档时,恶意JS代码被触发。由于Electron架构中渲染进程与主进程共享Node.js环境,攻击者可以通过require('child_process')等模块调用系统命令,从而在用户设备上执行任意代码,获取系统控制权。这要求用户进行交互(打开文件),但无需预先认证。

攻击链分析

STEP 1
1. 构造恶意文件
攻击者创建一个包含绕过转义机制的恶意IAL属性的.sy文档,并将其打包为.sy.zip文件。
STEP 2
2. 投递攻击载荷
攻击者诱导受害者下载该.sy.zip文件,并通过SiYuan客户端的Import -> SiYuan .sy.zip功能导入文件。
STEP 3
3. 触发XSS漏洞
当受害者打开导入的笔记时,渲染引擎解析恶意块属性,注入事件处理程序并执行JavaScript代码(存储型XSS)。
STEP 4
4. 提升至RCE
在Electron桌面客户端中,执行的JavaScript利用Node.js API调用系统命令,实现远程代码执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- Malicious .sy block content example --> {: id="&quot; onmouseover=alert(1) //" }

影响范围

SiYuan < 3.6.2

防御指南

临时缓解措施
如果无法立即升级,应避免打开或导入不可信的.sy.zip文件,仅处理可信来源的文档。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表