微软研究人员披露了 Anthropic 的 Claude Code GitHub Action 中的一项漏洞,该漏洞允许攻击者通过提示注入攻击(prompt injection)来暴露凭证,且 Anthropic 已在 5 月 5 日修补该缺陷。微软于 4 月 29 日通过 HackerOne 披露该问题,并在周五发布了相关细节博文。该漏洞源于 AI 编码代理在处理隐藏在 GitHub issue、pull request 或评论中的恶意指令。微软在观察到使用 AI 辅助的 GitHub 工作流在公共仓库中的提示注入尝试后启动了研究:在这些场景中,攻击者可控内容能够影响 AI 代理对其工具的使用。该披露凸显了 AI 编码代理在 CI/CD 工作流中运行所带来的安全风险——此类工作流通常能够访问 API 密钥、云凭证以及其他敏感信息。
微软在博文中写道,该研究始于观察到多个供应商的 AI 辅助 GitHub 工作流在公共仓库中出现提示注入尝试。该攻击方法依赖于攻击者可控的 issue 或 pull request 内容,这些内容会被 AI 代理处理,并可能影响其工具使用。 在 GitHub 上,pull request 允许开发者为代码仓库提出变更,并在获批并合并之前对这些变更进行审查。根据微软的说法,攻击者可以在 GitHub issue、pull request 或评论中隐藏提示注入攻击,从而诱导 Claude Code 访问包含敏感凭证的文件。Claude Code 是 Anthropic 面向软件开发任务的 AI 编码代理,于 10 月推出。
微软创建了一个 GitHub 工作流,并将恶意指令伪装在其控制的域名托管的内容背后,以测试该漏洞。这种做法使研究人员能够绕过 Claude 的安全保护。提示注入攻击诱骗 Claude 读取敏感凭证并对其进行修改,从而同时规避 Claude 的保护以及 GitHub 的秘密扫描工具。微软表示,随后攻击者可以重建该凭证,并通过 issue 评论、工作流日志、网页请求或 shell 命令将其外传。微软写道,为了绕过 Sonnet 的拒绝安全机制,该公司将 shell payload 伪装在其受控域名的响应之后。微软还启用了该工作流,使其可由没有“写入”权限的用户触发,以确保在测试期间 Anthropic 环境变量的清理式缓解措施是处于生效状态的。
在微软于 4 月 29 日通过 HackerOne 披露该漏洞之后,Anthropic 于 5 月 5 日使用 Claude Code 版本 2.1.128 修补了该缺陷。该工具曾在 3 月受到关注:原因是 Anthropic 意外泄露了超过 50 万行的源代码,暴露了其内部架构细节,并促使研究人员与开发者展开了广泛分析。尽管内置了多层安全控制,微软仍发现,坚定的攻击者可能会设法操纵 AI 代理以暴露敏感信息。
微软在博文中表示,行业正在进入一个自然语言就是可执行代码的时代,像 GitHub issue 这样的不受信任输入默认必须被视为敌对。该公司写道,只需要一个经过精心设计的评论,再加上对信任边界的误解,就足以让人带着生产凭证全身而退。该报告发布之际,提示注入攻击已成为威胁 AI 代理安全的最大风险之一。在提示注入攻击中,攻击者会在诸如邮件、文档、网站或代码注释等内容中隐藏指令,导致 AI 系统遵循这些指令,而不是遵循用户的指令。
微软在 Claude Code 中发现了什么漏洞?
微软研究人员发现,Anthropic 的 Claude Code GitHub Action 可能会通过隐藏在 GitHub issue、pull request 或评论中的提示注入攻击被操纵,从而让攻击者暴露存储在软件开发流水线中的凭证。
Anthropic 是在何时修补 Claude Code 漏洞的?
在微软于 4 月 29 日通过 HackerOne 披露该问题之后,Anthropic 于 5 月 5 日使用 Claude Code 版本 2.1.128 修补了该漏洞。
微软是如何测试 Claude Code 漏洞的?
微软创建了一个 GitHub 工作流,并将恶意指令伪装在其控制的域名托管的内容背后,使研究人员能够绕过 Claude 的安全保护,并诱骗 AI 代理读取并篡改敏感凭证。
相关快讯