Anthropic官方Git MCP服务器曝三重漏洞:提示注入即可实现文件读写与远程代码执行

Anthropic维护的Model Context Protocol (MCP) 官方Git服务器 mcp-server-git 被发现存在三个安全漏洞。攻击者可通过提示注入(Prompt Injection) 在特定条件下读取或删除任意文件,甚至实现远程代码执行(RCE)。

Cyata研究员 Yarden Porat 在报告中指出:"这些漏洞可被提示注入利用。攻击者只需影响AI助手读取的内容(如恶意README文件、被篡改的问题描述或被入侵的网页),无需直接访问受害者系统,即可武器化这些漏洞"

(上图:Model Context Protocol (MCP) 架构示意图,展示AI模型如何通过MCP客户端与MCP服务器交互,调用外部工具如Git仓库。)

mcp-server-git 是一个Python软件包兼MCP服务器,提供一组内置工具,允许大型语言模型(LLM)以编程方式读取、搜索和操作Git仓库。该工具被广泛视为参考实现,常被开发者复用。

三个具体漏洞详情

这些漏洞已在2025年6月负责任披露后,通过以下版本修复:

  • CVE-2025-68143 (CVSS 8.8 v3 / 6.5 v4git_init 工具在创建仓库时未验证文件系统路径,导致路径遍历漏洞。攻击者可将任意目录转为Git仓库。(2025.9.25版本修复)
  • CVE-2025-68144 (CVSS 8.1 v3 / 6.4 v4git_diffgit_checkout 函数将用户控制的参数直接传递给Git CLI命令,导致参数注入漏洞。攻击者可通过未净化输入覆盖或清空任意文件。(2025.12.18版本修复)
  • CVE-2025-68145 (CVSS 7.1 v3 / 6.3 v4) 使用 --repository 标志限制操作到特定仓库路径时,缺少路径验证,导致另一处路径遍历漏洞。(2025.12.18版本修复

(上图:路径遍历(Path Traversal)攻击原理示意图,展示攻击者如何通过 ../ 等方式绕过目录限制,访问任意文件

攻击链:与Filesystem MCP服务器结合实现RCE

Cyata记录的攻击场景显示,这三个漏洞可与Filesystem MCP服务器 串联使用形成完整攻击链:

  1. 使用 git_init 在可写目录创建Git仓库。
  2. 通过Filesystem MCP服务器写入带有clean过滤器的恶意 .git/config 文件。
  3. 编写 .gitattributes 文件,将过滤器应用于特定文件。
  4. 编写包含恶意载荷的shell脚本。
  5. 创建触发过滤器的文件。
  6. 调用 git_add 执行clean过滤器,从而运行恶意载荷。

整个过程可通过间接提示注入触发:AI助手读取恶意内容后,自主调用相关Git工具,最终实现远程代码执行。

(上图:提示注入攻击在MCP/Git环境中的典型流程示意图,展示恶意内容如何通过AI助手调用工具,导致数据泄露或代码执行。)

修复措施与官方响应

作为响应,Anthropic已:

  • 移除存在风险的 git_init 工具;
  • 增加额外路径验证,防止路径遍历原语。

建议所有使用 mcp-server-git 的用户立即更新至 2025.12.18 或更高版本,以获得最佳防护。

Cyata首席执行官兼联合创始人 Shahar Tal 表示:"这是标准的Git MCP服务器参考实现,开发者预期会复用。如果安全边界在参考实现中都遭到破坏,就表明整个MCP生态系统需要更深入的审查。这些不是边缘案例,而是开箱即用的漏洞。"

对MCP生态与Agentic AI的启示

MCP(Model Context Protocol)旨在让AI Agent安全、标准化地访问外部工具和数据源,但此次事件暴露了参考实现 的安全隐患。当AI工具链(如Git + Filesystem MCP)组合使用时,单个组件的弱点可能被放大为系统性风险

企业与开发者建议

  • 立即更新所有MCP相关服务器至最新版本
  • 对MCP工具实施严格的输入验证、路径沙箱和命令净化。
  • 采用零信任原则,限制AI Agent的工具调用权限,并监控异常Git操作。
  • 在生产环境中避免直接使用未经验证的参考实现,优先进行安全审计。
  • 建立提示注入防御机制,包括运行时语义分析和操作审计。
相关推荐
Madison-No74 小时前
搭建项目测试环境
linux·运维·服务器·python
吴声子夜歌5 小时前
Shell编程实例——编写安全的shell脚本(二)
linux·运维·shell
悠悠121385 小时前
微服务通信别只看性能:REST 与 gRPC 的 6 个选型判断和一次 502 故障复盘
运维·服务器
云老大-阿里云国际站代理商7 小时前
华为云国际站服务代理商:NAT网关怎么配?多台ECS共用公网IP要注意什么
服务器·华为云·云计算
zx_741484817 小时前
【Linux入门】Shell 函数、正则表达式与文本处理:cut 与 awk
linux·运维·正则表达式
Zenova EdgeOS7 小时前
Linux dmesg 工业边缘实战:内核日志过滤、持久化与故障定位
linux·运维·边缘计算·工业边缘·dmesg·内核日志
玄芯散人8 小时前
【筑基·058】Git协作工作流:冲突解决和PR流程
git·版本控制·团队协作
wdfk_prog8 小时前
ROS教程08:从 TransportTCP::connect() 追到 TCPROS Connection Header、序列化与 Socket 数据传输
运维·缓存·docker·容器·ros
做运维的阿瑞8 小时前
Python 标准库汇总:分类速览与常用模块清单
linux·运维·python
浅念-9 小时前
Redis基础详解:单线程模型、String与Hash数据结构
服务器·数据库·redis·sql·mysql·nosql数据库·nosql