GitHub Copilot 严重漏洞可让攻击者从私有仓库悄然窃取源码

阅读量5472

发布时间 : 2025-10-14 15:27:14

x
译文声明

本文是翻译文章,文章原作者 Guru Baran,文章来源:cybersecuritynews

原文地址:https://cybersecuritynews.com/github-copilot-vulnerability/

译文仅供参考,具体内容表达以及含义原文为准。

一枚严重漏洞被发现存在于 GitHub Copilot Chat 中,其 CVSS 评分高达 9.6,可让攻击者在不被察觉的情况下从私有仓库中窃取源代码和密钥等敏感信息。该漏洞利用了一种新颖的**提示注入(prompt injection)**技术,并巧妙绕过了 GitHub 的 内容安全策略(CSP),从而获得对受害者 Copilot 实例的显著控制权,包括提示 AI 推荐恶意代码或链接。该问题已通过 HackerOne 负责任地上报,GitHub 随后已修补漏洞。

利用 Copilot 的上下文感知特性发起攻击

攻击从利用 Copilot 的上下文感知能力入手——Copilot 设计上会使用仓库内的代码、Pull Request 等信息来给出相关建议。研究人员发现,可以将恶意提示直接嵌入到 Pull Request 的描述中,借助 GitHub 的 “隐形评论” 功能将该提示对界面隐藏。

尽管这些评论在用户界面中不可见,但 Copilot 仍会处理其内容。这就意味着攻击者可以创建包含隐形恶意提示的 Pull Request,任何随后使用 Copilot 分析该 Pull Request 的开发者,其会话都可能遭到劫持。

由于 Copilot 以发起请求的用户权限运行,被注入的提示可以命令 AI 访问并操作受害者的私有仓库数据。

利用 URL 字典绕过 CSP 的巧妙方法

攻击者面临的一大障碍是 GitHub 的严格 CSP,它阻止 AI 将数据泄露到外部域名。GitHub 使用名为 Camo 的代理服务来安全地渲染第三方图片;Camo 会把外部图片 URL 重写为带签名的 camo.githubusercontent.com 链接,只有由 GitHub 生成、带有合法签名的 URL 才会被处理。

这阻止了攻击者通过简单注入 <img> 标签把数据发送到其服务器。为绕过该限制,研究者想出了一种巧妙方法:他们预生成了一套针对每个字母与符号的合法 Camo URL 字典,每个 URL 指向攻击者控制服务器上的一个 1×1 透明像素(根据 Legit Security 的报告)。

最终注入的提示指示 Copilot 在受害者的私有仓库中查找敏感信息(例如 AWS 密钥或零日漏洞描述),然后利用预生成的 Camo URL 字典以一系列不可见图片的方式“绘制”这些信息。

当受害者的浏览器渲染这些图片时,会向攻击者的服务器发送一系列请求,从而按字符逐一泄露敏感数据。该概念验证演示能够成功从私有仓库中外传代码。

在该漏洞披露后,GitHub 于 2025年8月14日 作出修复:彻底禁用 Copilot Chat 中的所有图片渲染功能,从根本上中和了该类攻击向量。

这起事件再次提醒我们,基于上下文的智能助理在提升开发效率的同时,也引入了新的攻击面。即便是界面不可见的内容(如隐形评论)也可能被模型处理并被滥用;而复杂的防护机制(如 CSP)也能被创意手段规避。防御方需要在提升可用性的同时,加强对模型输入来源、外部资源渲染以及第三方代理机制的审计与约束,以防止类似的数据外泄。

本文翻译自cybersecuritynews 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
安全客
分享到:微信

发表评论

Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全KER All Rights Reserved 京ICP备08010314号-66