notes-mcp Root Escape / Arbitrary File Read-Write Vulnerability Report 漏洞概述 漏洞类型:路径遍历(Path Traversal) 漏洞描述: 配置了一个 作为笔记仓库的根目录。所有文件操作都通过拼接用户控制的相对路径到 来实现,但实现中从未解析最终路径或检查其是否仍在 下。攻击者可以利用 段在配置的笔记目录之外读取、创建、删除文件。 技术根因: 1. 信任边界是命令行参数 。 2. 读取原语信任用户控制的 。 3. 写入原语同样存在问题。 4. 目录创建和删除辅助函数同样受影响。 5. 没有调用 、 或等效的父边界检查。 影响范围 受影响版本:0.1.4 CVSS v3.1 评分:9.1 (Critical) 安全影响: - 机密性:高,可以返回 之外的任意可读文件。 - 完整性:高,可以在 之外创建或覆盖任意可写文件。 - 可用性:中,如果权限允许,删除辅助函数可以删除 之外的文件或目录。 修复方案 推荐修复: - 将直接的 用法替换为 。 - 强制执行 或等效的边界检查,在每个 sink 之前。 - 为 、绝对路径、符号链接和 Windows 驱动器前缀路径添加回归测试。 - 考虑返回相对于 的笔记标识符,而不是接受任意的文件系统片段。 临时缓解措施: - 在使用前规范化每个候选路径,并拒绝任何逃逸 的路径。 - 限制服务账户的权限,使其无法访问敏感主机位置。 - 禁用破坏性工具( 、 )用于不受信任的部署,直到修复发布。 - 仅在受信任的本地工作流中运行服务器。 概念验证 (PoC)