MCP Research Server 主题路径遍历 / 任意 JSON 文件写入漏洞 #1 漏洞概述 漏洞类型: 路径遍历 (CWE-22) 漏洞描述: MCP Research Server 在存储 arXiv 搜索结果时, 被硬编码为 "papers"。 工具错误地重用了用户控制的 字符串作为文件系统目录名。 技术根因: 1. 工具接受不受约束的搜索词。 2. 同一不受信任的字符串被用作目录名。 3. 派生路径在结果存储路径中创建和写入,没有边界执行。 4. 审计结论:这是一个确认的路径遍历漏洞。 影响范围 受影响版本: 0.1.8 受影响范围: 从原始 构建存储路径的修订版本。 修复版本: 报告时不可用(2026年4月10日)。 修复方案 临时缓解措施: - 将 视为搜索查询,不要直接将其用作文件系统路径组件。 - 为每次搜索生成安全的服务器端存储键,或在构建路径前严格清理 。 - 解析候选路径并验证它们是否仍在 下。 推荐修复: - 使用文件名安全编码或生成标识符替换当前的目录派生。 - 添加边界检查,确保所有结果文件保留在 下。 - 添加针对 、绝对路径和混合分隔符变体的回归测试。 - 重新审计相关资源处理程序,因为它们也从用户控制的 值派生路径。 概念验证 (POC) 代码 攻击先决条件 能够调用暴露的 MCP 工具。 服务账户必须对攻击者选择的目的地目录具有写权限。 服务器必须能够完成 使用的 arXiv 请求路径。 安全影响 机密性: 低。此特定利用主要是文件原语,而不是直接任意读取。 完整性: 高。攻击者可以创建或覆盖 目录外的 JSON 文件。 可用性: 中等。攻击者可以填充任意可写目录或损坏相邻工具使用的 JSON 文件。 范围: 未改变。 CVSS v3.1 建议 建议向量: 建议基础分数: 8.1 (高) 注意: 如果只有受信任的认证用户可以调用 MCP 接口,请相应调整 PR。 参考 仓库: https://github.com/elle/mcp-research-server 审查源文件: CWE-22: https://cwe.mitre.org/data/definitions/22.html 信用 发现者: kinegee 发现方法: 静态分析 (CodeQL) 加手动源代码审计和利用构建。 额外备注 审计结论: 确认漏洞。 审查的 SARIF 结果: 此仓库/规则组 6 的总数。 确认问题: 是 在 外的基于路径的写入。 动态利用重放状态: PoC 是从此审计批次中验证的请求到 sink 路径构建的。