GhostAction 回来了:打着安全审计的旗号偷你的密钥
GhostAction 卷土重来:被劫持的维护者账号植入“security-audit.yml”工作流,把你的 CI 密钥往外送
被盗的 GitHub 账号推送了伪装成安全任务的工作流,用来窃取 Actions 密钥。新变种会扫描完整的 git 历史,三年前删掉的密钥照样算数。GitHub 从 10月9日开始拦截这个工作流。
- 披露时间
- 2026年10月9日
- 公开披露日期
- 严重程度
- 化粪池炸了
- 无 CVE:这是入侵事件,不是漏洞
- 波及范围
- 约 1,900 个账号、30,000 多个仓库成为目标(GitGuardian 数据);尝试窃取的密钥达 3,174 个
- github-actions
- 在野利用
- 已发现
- 在 GitHub 拦截之前,已有数千个密钥被偷走
一句话说清楚
用偷来的维护者令牌推一个“安全审计”工作流;它在 push 时触发,把所有密钥和 git 历史里一切长得像凭据的字符串全部导出来,POST 给攻击者。
发生了什么
GhostAction 最早出现在 2025 年。这一波从 2026年8月31日 悄悄开始,到 10月8日 全面爆发。攻击者以真实维护者的身份登录,用的很可能是泄露的个人访问令牌(PAT,未证实),然后推送一个名字听着很让人放心的工作流,比如 security-audit.yml。
这个工作流会读取指定名称的 Actions 密钥,再用 13 种凭据模式去 grep:AWS、Anthropic、OpenAI、OpenRouter、GitHub 和 GitLab 令牌、GCP、Slack、SendGrid。较新的变种会用 fetch-depth: 0 检出代码,再跑 git log -p --all。只要曾经提交过,就在射程之内,哪怕你几年前就删掉了。结果通过 HTTP POST 发往 193.32.204[.]199。
规模有多大?
各家数字对不上,干脆全列出来:
| 来源 | 说法 |
|---|---|
| GitGuardian | 约 1,900 个账号,30,000 多个仓库成为目标,尝试窃取 3,174 个密钥 |
| Socket | 500 多个账号,“数万个”仓库。它的详细统计是 2 个账号的 346 个仓库 |
| StepSecurity | 10月9日仍有 378 个仓库留着该工作流 |
有些受害者是前几波的回头客:上次被偷的密钥一直没轮换。GitHub 从 10月9日开始拦截这个工作流,之后 10月10日和12日的几波攻击都空手而归。
案发时间线
2026年8月31日
GitGuardian 首次发现新一波攻击
StepSecurity 观察到外传端点从 9月4日至5日开始投入使用。
2026年10月8日
大规模扫荡
kitao 和 henrywoo 两个账号把工作流推到了 345 个仓库。据 GitGuardian 统计,10月8日至9日约有 28,000 个仓库成为目标。
2026年10月9日
GitHub 开始拦截该工作流;Socket 和 StepSecurity 发布分析
2026年10月10日、12日
后续几波攻击没能再偷到密钥
各方说法
我们列出每条说法和它的出处,并标出一手来源(厂商、研究人员、软件仓库)。各方说法不一致时,按最坏的可信情况定级。
- Socket一手来源从 10月7日开始跟踪;称涉及 500 多个账号、数万个仓库,详细统计为 2 个账号的 346 个仓库
- StepSecurity一手来源10月9日仍有 378 个仓库的默认分支上留着该工作流;怀疑 PAT 来自信息窃取木马的日志(未证实)
- The Hacker News引用 GitGuardian 的数据:约 1,900 个账号、30,000 多个仓库、3,174 个密钥
- The New Stack同样引用 GitGuardian 的数据