又是Prompt注入!复盘CVE-2025-68143:如何利用Git配置缺陷实现从“对话”到“提权”的跨越

admin 2026-01-23 13:36:29 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文复盘CVE-2025-68143等漏洞。攻击者利用Prompt注入诱导AI在任意路径初始化Git仓库,结合参数注入篡改配置植入恶意脚本,实现远程代码执行。文章建议升级版本、严格校验入参并遵循最小权限原则,强调需防范AI代理滥用系统命令的风险。 综合评分: 90 文章分类: 漏洞分析,AI安全,漏洞预警,渗透测试,代码审计


cover_image

又是 Prompt 注入!复盘 CVE-2025-68143:如何利用 Git 配置缺陷实现从“对话”到“提权”的跨越

原创

Kit Chung Kit Chung

安全圈动向

2026年1月23日 07:59 广东

最近 AI Agent(智能体) 的概念火得一塌糊涂。大家都在搞 MCP(Model Context Protocol),恨不得让大模型长出三头六臂,直接操作我们的数据库、文件系统,甚至 Git 仓库。

但作为一个在安全圈摸爬滚打多年的老兵,我一直有个隐忧:当我们将系统的“执行权”交给一个只会概率预测的大模型时,如果它“被误导”,后果会怎样?

这不,怕什么来什么。

最近,Anthropic 官方维护的标杆级项目 mcp-server-git 被曝出了三个高危漏洞。这可不是普通的 Bug,这是官方打样的“标准答案”翻车了。攻击者只需要通过精心构造的 Prompt(提示词注入),就能诱导 AI 在不需要直接接触你系统的情况下,实现文件任意读写,甚至远程代码执行(RCE)

今天,咱们就扒开源码,看看这几个漏洞到底是怎么“链”起来的,以及我们在开发 AI 应用时该如何避坑。

01 漏洞全家桶:当 AI 变成“内鬼”

这次被点名的是 mcp-server-git,它是 Anthropic 给开发者们提供的“样板间”,用来演示如何让 Claude 等大模型通过 MCP 协议去操作 Git 仓库。

安全研究员一口气丢出了三个 CVE,它们分别对应了我们在开发 CLI 包装器时最容易犯的三个错:

1. 任意路径初始化 (CVE-2025-68143)

核心问题:git_init 工具太“听话”了。 原本我们用 git init,通常是在当前项目目录下。但在这个 MCP 工具里,它允许传入任意文件系统路径,而且没有任何校验。这意味着攻击者可以诱导 AI 在 /etc/ 或者其他敏感目录下执行初始化,直接把整个系统目录变成一个 Git 仓库。

2. 参数注入 (CVE-2025-68144)

核心问题:入参没有做“清洗”。 这是经典的参数注入(Argument Injection)。当工具直接将用户(或者说 AI 生成的)参数透传给底层的 git_diff 或 git_checkout 命令时,如果没有做严格的 Sanitization,攻击者就可以通过传入类似 --output=/path/to/file 这样的参数,改变 git 的原定行为,甚至覆盖关键文件。

3. 越权访问 (CVE-2025-68145)

核心问题:--repository 标志形同虚设。 本来这个标志是为了限制 AI 只能在特定仓库里折腾,但因为缺少路径验证,攻击者可以用 ../../ 这种经典的路径遍历手法跳出限制,访问服务器上的任意仓库。

02 高能预警:如何用“一句话”达成 RCE?

如果只是上面这几个单独的漏洞,可能只是“文件泄露”或者“文件破坏”。但真正让安全工程师难受的,是漏洞利用链(Exploit Chain)

Cyata 的研究员演示了一个教科书级别的攻击路径,他们通过组合拳,成功实现了 RCE(远程代码执行)

🕵️‍♂️ 攻击场景: 攻击者不需要直接访问你的服务器。他只需要在一个 AI 会读取的地方(比如一个恶意的 README 文件、一个 issue 描述,或者一个网页)埋下“毒 Prompt”。

攻击链条是这样的:

  • Step 1 诱导初始化

    利用 Prompt 注入,骗 AI 调用有漏洞的 git_init,在一个攻击者可写的目录下创建一个 Git 仓库。

  • Step 2 篡改配置

    结合 Filesystem MCP(文件系统操作权限),在这个仓库的隐藏目录 .git/config 里写入恶意配置。 💡 技术细节:利用 Git 的 filter 机制。Git 允许在 checkout 或 add 文件时运行自定义脚本。

  • Step 3 埋下 Payload

  1. 写入一个 .gitattributes 文件,指定某些文件类型应用上述 filter。
  2. 写入一个包含恶意代码的 Shell 脚本。
  3. 写入一个触发文件。
  • Step 4 触发执行

    最后,诱导 AI 调用 git_add。这一步会触发 Git 的 clean filter 机制,系统会在后台默默执行之前埋下的 Shell 脚本。

💥 代码执行成功。

整个过程,用户可能只是让 AI 帮忙“总结一下这个项目的代码”,服务器就已经易主了。

03 深度反思:AI 时代的“安全边界”在哪?

这次翻车的 mcp-server-git 可是 Anthropic 的官方示例。就像 Cyata 的 CEO Shahar Tal 说的:

“这是规范的 Git MCP 服务器,是开发者们模仿的对象。如果连官方参考实现的防御边界都如此脆弱,那说明整个 MCP 生态系统都需要更深层次的审查。”

这给我们所有正在做 AI 应用集成的工程师提了个醒:

1. 大模型不是人,它没有直觉。 不要预设 AI 会帮你过滤恶意指令。Prompt 注入在未来几年内都将是 Top 级别的安全威胁。

2. “胶水代码”最危险。 我们用 Python 包装 CLI 工具(如 Git、Docker、K8s)给 AI 用时,必须假设 所有入参都是恶意的

3. 最小权限原则 (PoLP) 至关重要。 为什么 AI 能写 .git/config?为什么 AI 能访问任意路径?在给 Agent 授权时,能给只读就别给读写,能限制在沙箱就别给宿主权限。

🛡️ 修复方案

目前的修复方案非常直接:

  • 升级版本(Python 包 mcp-server-git 的版本):

    官方在 2025.9.25 和 2025.12.18 版本中修复了这些问题。

  • 功能阉割:

    直接移除了高危的 git_init 工具(简单粗暴,但有效)。

  • 加强校验:

    增加了对路径遍历的严厉验证。

最后: 技术在狂奔,但安全不能掉队。下次在用 n8n 或者 LangChain 搭建工作流时,记得多看一眼那些直接在这个服务器上跑命令的节点。毕竟,你永远不知道屏幕对面的那个“智能助手”,是不是刚刚读了一本“黑客写的书”。

各位运维和开发的大佬们,你们怎么看这次官方翻车? 欢迎在评论区聊聊你的看法!👇


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:安全圈动向 Kit Chung Kit Chung《又是 Prompt 注入!复盘 CVE-2025-68143:如何利用 Git 配置缺陷实现从“对话”到“提权”的跨越》

评论:0   参与:  0