IPBUF安全漏洞报告
English
CVE-2026-34448 CVSS 9.0 严重

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

披露日期: 2026-03-31

漏洞信息

漏洞编号
CVE-2026-34448
漏洞类型
存储型XSS
CVSS评分
9.0 严重
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
SiYuan Note

相关标签

存储型XSS远程代码执行SiYuanElectronRCECVE-2026-34448

漏洞概述

SiYuan是一款个人知识管理系统。在3.6.2版本之前,存在严重的存储型XSS漏洞。攻击者可在属性视图的资源字段植入恶意URL。当受害者打开启用了“封面来源 -> 资源字段”的画廊或看板视图时,恶意脚本将被触发。由于代码未对URL进行转义,直接注入到`<img src="...">`中,导致脚本执行。在Electron桌面客户端中,这将导致任意操作系统命令执行。

技术细节

该漏洞的核心在于SiYuan对“属性视图”中Asset字段内容的处理逻辑存在缺陷。攻击者可以构造包含JavaScript代码的Payload(例如使用`javascript:`协议或利用特定浏览器/Electron渲染特性),并将其作为URL输入到Asset字段中。应用程序在处理该字段时,未能正确验证URL的合法性,且未对特殊字符进行HTML实体编码。当用户浏览特定的视图模式(画廊或看板)时,系统会读取该字段内容,并将其未经过滤地拼接到HTML文档的`<img src="...">`标签属性中。这导致攻击者的Payload在受害者的浏览器上下文中被执行。

特别地,SiYuan的Electron桌面客户端为了实现桌面级功能,配置了`nodeIntegration: true`和`contextIsolation: false`。这种配置打破了浏览器沙箱与操作系统之间的安全屏障。因此,通过存储型XSS漏洞执行的JavaScript代码可以直接调用Node.js的`child_process`模块,从而在受害者主机上执行任意系统命令,实现完全的本地系统控制。

攻击链分析

STEP 1
步骤1:漏洞探测
攻击者确认目标SiYuan实例版本低于3.6.2,且为Electron桌面客户端。
STEP 2
步骤2:恶意Payload注入
攻击者创建或编辑笔记,在属性视图的Asset字段中输入恶意构造的URL(如包含JavaScript代码的字符串)。
STEP 3
步骤3:存储
SiYuan系统将恶意URL保存到数据库中,未进行有效的安全过滤。
STEP 4
步骤4:诱导触发
攻击者诱导受害者打开特定的笔记视图(画廊或看板),并确保视图配置了“Cover From -> Asset Field”。
STEP 5
步骤5:XSS执行
受害者的客户端渲染页面时,将恶意URL注入到`<img>`标签中,导致JavaScript代码在浏览器上下文中执行。
STEP 6
步骤6:RCE利用
利用Electron的`nodeIntegration`配置,恶意脚本调用Node.js API,执行任意操作系统命令,控制受害者主机。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// Payload to be injected into the 'Attribute View Asset Field' // The application treats this input as an image URL and injects it into an <img> tag. // Example payload using javascript protocol (if not strictly filtered to http/https): var malicious_payload = "javascript:alert('CVE-2026-34448-XSS');"; // Alternatively, if the application fetches the URL and renders it, // an attacker might host a malicious file that triggers execution. // Simulation of the vulnerable code behavior: var coverURL = malicious_payload; // Data from database var vulnerable_html = '<img src="' + coverURL + '">'; // Direct injection without escaping // console.log(vulnerable_html); // Output: <img src="javascript:alert('CVE-2026-34448-XSS');"> // In the Electron desktop client context, this can be escalated to RCE: // var node_require = require('child_process'); // node_require.exec('calc.exe');

影响范围

SiYuan Note < 3.6.2

防御指南

临时缓解措施
建议用户立即升级到SiYuan 3.6.2或更高版本。在未升级前,应谨慎打开来源不明的笔记,避免在Electron桌面客户端中查看包含资产字段的看板或画廊视图,以防止恶意代码执行。

参考链接

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