文章总结: 本文复盘CVE-2025-68143等漏洞。攻击者利用Prompt注入诱导AI在任意路径初始化Git仓库,结合参数注入篡改配置植入恶意脚本,实现远程代码执行。文章建议升级版本、严格校验入参并遵循最小权限原则,强调需防范AI代理滥用系统命令的风险。 综合评分: 90 文章分类: 漏洞分析,AI安全,漏洞预警,渗透测试,代码审计
又是 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
- 写入一个
.gitattributes文件,指定某些文件类型应用上述 filter。 - 写入一个包含恶意代码的 Shell 脚本。
- 写入一个触发文件。
-
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 配置缺陷实现从“对话”到“提权”的跨越》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论