全球数万个代码库,可能因为一个命名后缀而面临完全失控的风险。GMO Flatt Security安全研究员RyotaK发现的这个供应链漏洞,根源在于Claude Code的GitHub Actions工作流中,一个权限验证函数错误地信任了所有以“bot”结尾的账户标识。
这个编号为v1.0.94之前版本的漏洞,其攻击路径简单到令人不安。攻击者只需创建一个恶意GitHub App,在自己的仓库中安装它,然后用安装令牌在目标公共仓库提交一条issue。因为GitHub Apps对公共仓库默认拥有隐式读取权限,且提交issue不需要任何特殊授权。
![]()
当工作流运行时,checkWritePermissions函数检查操作者身份。它看到的是一个以“bot”结尾的标识,由于代码逻辑存在无条件信任缺陷,直接返回验证通过。此时,攻击者精心构造的issue内容,已经被工作流当作可信输入来执行。
更致命的是tag模式和agent模式之间缺少一致性安全控制。tag模式虽有额外的checkHumanActor检查,但agent模式在漏洞发现时并未设置这一防线。这让攻击者得以利用Claude Code允许的Bash命令——cat和head等无需用户明确批准——读取工作流进程中的所有环境变量。
/proc/self/environ这个Linux伪文件暴露了所有传入工作流的敏感凭据。最关键的ACTIONS_ID_TOKEN_REQUEST_TOKEN和ACTIONS_ID_TOKEN_REQUEST_URL,正是请求OpenID Connect令牌的原始凭证。凭借这些窃取的令牌,攻击者能够调用Anthropic的https://api.anthropic.com/api/github/github-app-token-exchange接口,将窃取到的凭据兑换成一个拥有完整写入权限的GitHub App令牌。
Anthropic内部issue分类工作流中允许的mcp__github__update_issue工具,在这个攻击链中扮演了致命角色。攻击者滥用这个工具,将窃取到的秘密写回公开可见的GitHub issue评论区,完成了一次完整的凭据外泄闭环。最严重的后果是,anthropics/claude-code-action这个仓库本身也在攻击范围内。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.