事件经过
CVE-2026-126776(CWE-22)是SiYuan在Windows上kernel/util/webfetch.go中的路径遍历缺陷,已在3.8.10中修复。MCP web_fetch和http_request工具将获取的内容写入由提供的URL派生的路径;反斜杠编码(%5C)的文件名逃逸了预期的导入目录,因此控制获取URL的攻击者可以为应用用户将文件写入任意可写位置。
影响分析
这位于LLM驱动的代理/应用的MCP工具表面:由于web_fetch/http_request是可调用的工具,构造的URL(或获取内容中的提示注入载荷)成为主机上的任意文件写入原语——这是代理式部署中实现RCE或配置篡改的经典垫脚石。
攻击途径
web_fetch/http_request MCP工具未正确限制结果文件路径:攻击者控制的获取URL/响应中的反斜杠编码文件名(%5C)在没有遍历包含的情况下被解析,允许在Windows上将文件写入导入目录之外。控制代理获取URL的攻击者——直接或通过获取内容的提示注入——可以为应用用户将文件放置在任意可写位置。
受影响系统
SiYuan 3.7.0至3.8.10之前版本(Windows)——kernel/util/webfetch.go中的web_fetch/http_request MCP工具。
缓解措施
升级SiYuan到3.8.10或更高版本。审查web_fetch/http_request处理中的反斜杠规范化,并在导入目录内强制路径包含。