漏洞总结:mcp-game-asset-gen 任意文件写入漏洞 漏洞概述 漏洞名称:mcp-game-asset-gen 任意文件写入漏洞 (CVE-73) 漏洞类型:外部控制文件名或路径 (CWE-73) 受影响版本:v0.1.0 漏洞描述:在 MCP 工具中,程序接受用户提供的 参数,并将 JSON 状态数据写入该路径。由于未验证目标路径是否位于安全目录内,攻击者可利用此漏洞在任意可写位置创建或覆盖文件,可能导致应用文件、日志或配置数据被破坏。 影响范围 机密性:低(主要是写入/覆盖原语)。 完整性:高(攻击者可在选定路径创建或覆盖可写文件)。 可用性:高(攻击者可破坏可写的应用程序、日志或配置文件,导致服务中断)。 利用前提:攻击者需能调用 工具,且服务器进程对目标路径拥有写权限。 修复方案 1. 输入验证:不接受来自 MCP 客户端的任意绝对 路径。 2. 服务端生成:在服务端生成固定的、专用的状态文件路径。 3. 路径解析与校验:使用 解析最终路径,并在写入前验证其是否仍在预期的输出/状态目录内。 4. 拒绝危险路径:拒绝绝对路径、遍历序列(如 )和意外的文件扩展名。 5. 测试:添加回归测试,确保路径如 、 或符号链接目标不会逃逸到预期目录。 POC 代码 1. 调用工具代码 (JSON Payload) 2. 预期写入的文件内容