文章总结: GitHubCopilot存在严重提示注入漏洞CVE-2025-53773,攻击者可通过修改项目settings.json文件将Copilot置于YOLO模式,绕过用户确认执行任意命令,实现远程代码执行。该漏洞影响Windows、macOS和Linux系统,可能导致开发机器被加入僵尸网络或传播AI病毒。微软已于2025年8月修复此漏洞,建议开发者及时更新并警惕AI代理修改自身配置的安全风险。
综合评分: 93
文章分类: AI安全,漏洞分析,漏洞预警,渗透测试,威胁情报
Github Copilot 通过提示注入漏洞实现远程代码执行 CVE-2025-53773
Ots安全
2025年8月14日 09:20
广东
这篇文章是关于一个重要但也很可怕的提示注入发现,它导致GitHub Copilot 和 VS Code中开发人员的机器完全系统被攻陷。
这是通过修改项目settings.json文件将 Copilot 置于 YOLO 模式来实现的。
正如几天前关于Amp的描述,代理中一个可能被忽视的漏洞模式是:如果代理能够写入文件并修改自身配置或更新安全相关设置,则可能导致远程代码执行。这种情况并不少见,在进行安全审查时,始终需要注意。
背景研究
当查看 VS Code 和 GitHub Copilot Agent Mode 时,我注意到一个奇怪的行为……它可以在未经用户批准的情况下在工作区中创建和写入文件。
编辑内容会立即持久化,不会以差异形式存储在内存中以供审核。修改内容会立即写入磁盘。
YOLO 模式
因此,接下来我研究了 VS Code 中依赖于项目/工作区文件夹中的设置的功能,并很快发现了一个有趣的功能。
事实证明,.vscode/settings.json可以在文件中添加以下行:
“chat.tools.autoApprove”: true
这将使 GitHub Copilot 处于 YOLO 模式。
它会禁用所有用户确认,我们可以运行 shell 命令、浏览网页等等!
有趣的是,这是一个实验性功能,但它仍然默认存在。我没有下载特殊版本,也没有将我的 VS Code 整体设置为实验模式。
此外,它还适用于 Windows、macOS 和 Linux。
漏洞链解析
劫持 Copilot 并提升权限的概念验证漏洞链如下:
- 攻击从在源代码文件、网页、GitHub 问题、工具调用响应或其他内容中植入的提示注入开始……有效载荷还可以使用不可见的文本作为指令。
- 提示注入首先将“chat.tools.autoApprove”: true添加到~/.vscode/settings.json文件。如果文件夹和文件尚不存在,则会创建它们。
- GitHub Copilot 立即进入 YOLO 模式!
- 攻击会运行终端命令。使用条件提示注入,我们实际上可以根据操作系统确定要运行的内容。
- 我们通过 Prompt Injection 实现了远程代码执行。
下面是一个屏幕截图,显示了带有提示注入的演示文件、开发人员在聊天框右侧与文件进行交互以及弹出计算器!
当然,任何其他快速注入的方式,例如 Web 或从 MCP 服务器返回的数据,都可能成为攻击角度。我只是在源代码文件中使用了它,因为这样最容易测试。
视频演示
简短的演示
这是一个演示视频,展示了在 Windows 上代码的执行。
已关注
关注
重播 分享 赞
关闭
观看更多
更多
退出全屏
视频加载失败,请刷新页面再试
刷新
视频详情
这是 macOS 上的:
已关注
关注
重播 分享 赞
关闭
观看更多
更多
退出全屏
视频加载失败,请刷新页面再试
刷新
视频详情
演练
这是一个较长的视频,详细解释了这一发现和利用:
已关注
关注
重播 分享 赞
关闭
观看更多
更多
退出全屏
视频加载失败,请刷新页面再试
刷新
视频详情
能够自行设定权限和配置设置的AI真是狂野啊!
将工作站加入僵尸网络 – ZombAIs
当然,这意味着我们可以将开发人员的机器作为ZombAI加入僵尸网络。
另外,为了好玩,我们可以修改settings.json文件以将 VS Code 切换为Red配色方案和类似的东西。
但这还没完!这也意味着我们可以构建一个真正的AI病毒,它会附着在文件上,并在开发人员下载受感染文件并与其交互时进行传播。
最后但同样重要的一点是,为了证明我们完全控制了开发人员的主机,我们展示了 Copilot 可以被劫持以下载恶意软件,并加入远程命令和控制服务器。
这意味着恶意软件、勒索软件、信息窃取者等的入侵大门已经打开。
可怕的东西。
构建人工智能病毒
看到这个,你会注意到这基本上可以创建病毒。攻击者可以嵌入指令,一旦获得代码执行权限,其他恶意软件就可以入侵其他 Git 项目(以及 RAG 源),嵌入恶意指令,提交更改,甚至强制将其推送到上游。
由于其他开发人员在不知不觉中传播了受感染的代码,这可能会导致进一步的传播。
最后我们还要说一下隐形指令!
使用隐形指令
有人可能会说,如果指令以注释的形式嵌入,很快就会被发现。所以,为了让它更有趣一点,我创建了一个隐形的有效载荷,它可以实现攻击链,但对用户不可见。虽然不太可靠,但仍然有效:
已关注
关注
重播 分享 赞
关闭
观看更多
更多
退出全屏
视频加载失败,请刷新页面再试
刷新
视频详情
注意:虽然此处使用隐形指令的演示对我来说多次有效,但使用隐形指令通常会导致漏洞利用非常不可靠,并且通常也会被模型拒绝,并且 VS Code 通常还会显示有关 Unicode 字符的视觉指示。然而,攻击(和模型)会随着时间的推移而不断改进。同样值得强调的是,并非所有模型都容易受到此类隐形即时注入攻击。
建议和修复
实际上,攻击角度远不止我分享的 YOLO 模式示例。当微软问我是否还有更多信息时,我仔细查看了一下,发现还有其他问题,例如.vscode/tasks.jsonAI 可以写入数据,或者添加虚假的恶意 MCP 服务器等,这些都可能导致代码执行。此外,AI 还可以重新配置项目的用户界面和配置设置。
最近我注意到开发人员经常使用多个代理,因此也存在覆盖其他代理配置文件(允许列表 bash 命令、添加 MCP 服务器……)的威胁,因为它们通常也位于项目文件夹中。
理想情况下,AI 应该在未经人类批准的情况下才能修改文件。许多其他编辑器会显示差异,然后由开发人员批准。
负责任的披露
微软于2025年6月29日报告该漏洞后,确认了该漏洞的重现,并提出了一些后续问题。几周后,MSRC指出他们一直在跟踪该漏洞,并将于8月前修复。随着8月补丁星期二的发布,该漏洞现已得到修复。
感谢Persistent Security的Markus Vervier ,他也发现了此漏洞并向 Microsoft 报告。您可以在此处查看他们的报告。
感谢 MSRC 和产品团队的成员为缓解这一问题提供的帮助。
结论
这又是一个AI代理无法固守其“盒子”的例子!通过修改自身环境,GitHub Copilot可以提升权限并执行代码,从而入侵开发者的机器。据我所知,这在代理系统中是一个并不少见的设计缺陷。
持续关注此类设计缺陷,这些缺陷应该很容易在威胁建模期间被发现。
参考
https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-53773
https://monthofaibugs.com/
https://embracethered.com/blog/posts/2025/amp-agents-that-modify-system-configuration-and-escape/
https://code.visualstudio.com/docs/copilot/reference/copilot-settings
https://www.persistent-security.net/post/part-iii-vscode-copilot-wormable-command-execution-via-prompt-injection
https://persistent-security.net/
感谢您抽出
.
.
来阅读本文
点它,分享点赞在看都在这里
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:Ots安全 《Github Copilot 通过提示注入漏洞实现远程代码执行 CVE-2025-53773》