白帽子学AI安全——PromptInjection实战:29天,15款工具,全部中招

admin 2026-03-27 03:15:57 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文章概述AI漏洞月项目中29天内15款主流AI编程工具的PromptInjection安全问题,包括Cursor窃取API密钥、ClaudeCode泄露环境变量、GitHubCopilot自动批准机制导致失控等典型案例。核心结论是自动批准机制和AI修改自身配置为主要风险点,建议保持工具更新、禁用全自动模式并加强密钥保护。 综合评分: 89 文章分类: AI安全,漏洞分析,实战经验,安全建设,WEB安全


cover_image

白帽子学AI安全——Prompt Injection实战:29天,15款工具,全部中招

原创

白小帽 白小帽

白小帽

2026年3月18日 10:59 江苏

声明:本文内容整理自国外安全研究员的公开研究成果,所有漏洞均已通知相关厂商并完成修复或正在修复中。文章仅供安全学习交流,不构成任何攻击指导。


最近在学习一个国外安全研究员去年做的项目,觉得挺有意思的,整理一下分享给大家。

这个项目叫”AI漏洞月”,研究员在2025年8月连续29天,每天披露一个主流AI编程工具的安全问题。涉及的产品包括GitHub Copilot、Claude Code、Cursor、Amazon Q这些大家平时常用的工具。

看完之后感觉还是挺震惊的,很多问题其实原理并不复杂,但危害不小。下面挑几个比较典型的说一下。


先说一下背景:什么是Prompt Injection

在看具体案例之前,先简单解释一下这类攻击的基本原理。

AI编程助手在帮你干活的时候,经常需要处理外部内容——比如你让它总结一个网页、分析一个代码文件、看一个GitHub Issue。

问题在于,AI没办法区分”这是用户给我的指令”和”这是内容里藏的指令”。如果攻击者在一个网页或者文件里偷偷写了一段指令,AI就可能乖乖去执行。

这就是Prompt Injection,提示注入。

这个问题目前没有完美的解决方案,属于AI应用安全里的老大难问题了。


几个典型案例

1. Cursor:用流程图偷API密钥

Cursor支持渲染Mermaid流程图,这个功能本身没问题。但研究员发现Mermaid语法里可以嵌入img标签,图片加载的时候会向外部服务器发请求。

利用思路是这样的:在代码注释里藏一段指令,当开发者让Cursor解释这段代码时,Cursor被劫持,去搜索项目里的配置文件,把找到的API密钥拼到一个图片URL里,然后渲染这个Mermaid图表。

图表一渲染,请求就发出去了,密钥就到攻击者手里了。

开发者看到的只是一个正常的流程图,完全没有异常提示。

这个漏洞拿到了CVE编号,Cursor一周内修了。

2. Claude Code:ping命令泄露环境变量

Claude Code有个设计,部分命令不需要用户确认就能直接执行,比如whoamilsping这些看起来没什么危害的命令。

ping命令可以把数据藏在域名里发出去,这就是DNS外带数据的思路。

研究员构造了一个载荷,让Claude Code读取.env文件里的内容,然后把内容拼到ping命令的域名里执行。攻击者只需要看自己DNS服务器的日志,就能拿到泄露的数据。

有意思的一个细节是,研究员直接让Claude自己去分析这份白名单命令列表,问它哪些命令可能被滥用来外带数据——Claude准确地指出了ping、nslookup、host、dig都有这个风险。

这个漏洞CVSS评分7.1,Anthropic11天内修复,分配了CVE。

3. GitHub Copilot:改一行配置,AI彻底失控

VS Code有个实验性功能,在settings.json里加一行"chat.tools.autoApprove": true,Copilot就会进入全自动模式,所有操作不再需要用户确认。

Copilot在Agent模式下可以直接写文件,不需要用户批准,而且写入是立即生效的。

攻击链就出来了:在代码注释里藏指令 → 开发者让Copilot解释代码 → Copilot被劫持,往settings.json写入那行配置 → Copilot进入全自动模式 → 执行任意命令。

研究员还演示了进一步的利用:下载恶意程序、把开发者电脑加入远控网络,以及构建AI病毒——感染一个Git仓库后,病毒自动提交到GitHub,其他开发者拉代码时继续传播。

微软在2025年8月的补丁日修了这个问题,有CVE。

4. AWS Kiro:发布当天就被发现问题

Kiro是AWS推出的AI编程工具,发布当天研究员就测了一遍,发现了类似的问题。

Kiro可以在不经用户批准的情况下写文件,包括自身的配置文件。攻击者可以通过Prompt Injection让Kiro往配置文件里写入"kiroAgent.trustedCommands": ["*"],这样所有bash命令就都自动批准了。

另一条路是往MCP配置文件里写入一个恶意的MCP服务器,文件保存后立即执行。

AWS在21天内修复了这个问题,但没有发布CVE。

5. AgentHopper:跨工具传播的AI病毒

这是整个系列的压轴,研究员做了一个概念验证,展示了一个能在不同AI工具之间传播的病毒。

传播逻辑很简单:感染一个AI工具后,让它扫描本地所有Git仓库,在代码文件里注入恶意指令,然后提交推送到GitHub。其他开发者拉取代码,用自己的AI工具处理这些文件,就会继续被感染。

这个载荷还做了条件判断,会先识别当前是哪款AI工具,然后用对应的漏洞来提权。

研究员说,所有用到的漏洞在发布时都已经修复了,这个项目纯粹是为了展示这类攻击的可行性。


看完这些案例的一些感受

这29个漏洞里,有几个共同点:

第一,很多问题出在”自动批准”机制上。为了提升用户体验,各家工具都设计了一些不需要确认就能执行的操作,但这些操作往往成了攻击的突破口。

第二,AI工具能修改自身配置这件事本身就很危险。研究员发现这是个反复出现的设计问题,Copilot、Amp、Kiro都有类似的问题。

第三,厂商的响应差距很大。Anthropic、微软、AWS Kiro响应都比较快,但也有厂商120天没有任何回复的。


作为开发者能做什么

几个比较实用的建议:

•保持AI工具更新到最新版本,这些漏洞大多已经修复

•不要开启全自动模式,保留人工确认步骤

•SSH密钥和代码签名密钥设置密码短语,防止被自动推送代码

•重要仓库开启分支保护

•让AI处理来自外部的内容时多留意一下,比如分析陌生人发来的文件

最后说一句,Prompt Injection目前没有根本性的解决方案,这是整个行业面临的问题。在这个问题彻底解决之前,保持一定的警惕性还是有必要的。


整理自国外公开安全研究资料,如有错误欢迎指正。


免责声明:

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

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

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

本文转载自:白小帽 白小帽 白小帽《白帽子学AI安全——Prompt Injection实战:29天,15款工具,全部中招》

评论:0   参与:  0