GitHub Copilot CLI曝加密上下文注入漏洞

GitHub Copilot CLI曝加密上下文注入漏洞。攻击者利用强加密文本绕过内容过滤,诱导代理泄露敏感信息。测试显示特定模型下50%尝试成功执行攻击链,用户难以预判当前会话所用模型的安全性。

安全研究机构 Adversa AI 的研究人员发现,GitHub Copilot CLI 存在一种名为“加密上下文注入”(Encrypted Context Injection, CCI)的安全漏洞。该漏洞允许攻击者通过精心构造的网页内容,诱导编码代理工具泄露开发者的敏感信息。这一漏洞机制与今年早些时候在 xAI 的 Grok 模型中发现的问题类似。

mai-code-1.1-flash命中率50%

漏洞原理:利用加密绕过内容过滤

间接提示注入(Indirect Prompt Injection)是指当大型语言模型从非用户来源摄取文本时,被引导执行超出预期功能范围的操作。Adversa AI 指出,GitHub Copilot CLI 同样易受此类攻击影响,尽管其底层模型决定了具体的风险程度。

据 Adversa AI 研究人员 Roni Utevsky 在其博客文章中解释,CCI 攻击的核心在于将恶意指令以强加密文本的形式发送,并附带关键材料和解密指令,诱导代理程序在其代码执行运行时自行解密。传统的静态内容分类器通常能识别明文中的恶意模式,但对于经过强加密的数据无能为力。这与 Base64 或替换密码等简单编码不同,后者因模型在训练过程中已学会解码而容易被防御机制识别和撤销。

攻击链演示:从假密钥到秘密窃取

攻击的具体流程如下:

  • 用户运行 GitHub Copilot CLI 并要求其获取特定 URL 的内容。
  • 目标页面包含加密数据、使用 Python 进行解密的指令以及两个潜在的解密密钥。
  • 第一个密钥是伪造的模板。代理尝试读取磁盘上的目标文件(例如用户的 .env 文件),并将其中发现的秘密拼接到这个假密钥字符串中。
  • 代理首先尝试使用这个包含秘密的假密钥进行解密,操作失败。
  • 随后,代理尝试第二个真正的密钥,解密成功。
  • 解密后的内容指示代理获取另一个 URL 以提供更多上下文,但该 URL 实际上用于收集之前窃取的秘密。

值得注意的是,这种攻击并非在所有情况下都能成功,其有效性高度依赖于底层模型的处理逻辑。

模型差异与“彩票效应”

目前,GitHub Copilot CLI 主要使用 Microsoft 自家的 mai-code-1.1-flash 模型。测试数据显示,该模型在 50% 的尝试中完整执行了上述攻击链。相比之下,OpenAI 的 GPT-5.6 系列模型则拒绝了攻击载荷的执行。

Utevsky 将这种情况描述为“模型彩票”。他表示:“在我们测试的付费账户中,易受攻击的模型并非默认选项,需要手动选择。”然而,路由器在某些会话中可能会自动分配易受攻击的模型,而在其他会话中分配安全的模型。用户对此既无法控制,也无法直观看到当前处理会话的是哪个具体模型。

厂商回应与争议

Adversa AI 于 2026 年 9 月 17 日通过 GitHub 的错误赏金计划报告了这一漏洞。GitHub 的分类团队验证了该发现,但拒绝将其认定为产品漏洞。

一位 GitHub 发言人在接受 The Register 采访时称:“GitHub 重视安全研究社区的贡献,并致力于调查报告中的安全问题。经过调查,我们确定这需要用户故意引导 Copilot CLI 获取攻击者控制或不可信赖的内容,并确认他们想要触发该动作,因此不属于产品漏洞。虽然这不是产品本身的安全问题,但我们一直在寻找改进产品的机会。”

Adversa AI 对 GitHub 的这一结论持反对意见,强调攻击链目前确实按照描述的方式运作,构成了实际的安全威胁。

评论 0

0/500

评论需审核后展示,请文明发言

💬
还没有评论,来说两句

相关阅读