GitHub 供应链攻击:从 Coinbase 项目到大规模机密泄露
近期,一场围绕 GitHub Action 的供应链攻击事件引发了广泛关注。此次攻击最初瞄准了 Coinbase 的开源项目 agentkit,随后演变成了一场波及范围更广的安全危机。
Palo Alto Networks 的 Unit 42 团队在报告中指出,攻击者试图利用 agentkit 项目的公共 CI/CD 流程,或许意在以此为跳板进行更多破坏活动。但好在 Coinbase 的机密信息未被窃取,软件包也未被恶意发布。
2025 年 3 月 14 日,这起攻击事件浮出水面。当时,名为 “tj-actions/changed-files” 的 GitHub Action 被发现遭入侵,其中注入的恶意代码会从运行相关工作流程的代码仓库中窃取敏感机密。该漏洞被标记为 CVE-2025-30066,CVSS 评分高达 8.6,属于高危漏洞。
Endor Labs 的调查显示,约 218 个 GitHub 代码仓库因这次攻击泄露了机密信息,其中主要包括 DockerHub、npm 和 AWS 的数十个凭证,以及 GitHub 安装访问令牌。安全研究员 Henrik Plate 提到,鉴于众多代码仓库依赖 GitHub Action,此次攻击起初的规模确实令人担忧。不过深入分析后发现,实际受影响程度比预想的要小,泄露机密的仓库数量有限,且多数泄露的是短效令牌。
随着调查的深入,另一个 GitHub Action——“reviewdog/action-setup” 也被卷入其中。它的 v1 标签同样遭到入侵,相关漏洞被追踪为 CVE-2025-30154,CVSS 评分也是 8.6。攻击者利用这个漏洞获取了个人访问令牌,进而篡改 “tj-actions/changed-files”,影响了众多依赖该操作的代码仓库。
攻击者采用了多种手段来掩盖踪迹,比如通过 “悬空提交” 的方式修改代码仓库,还创建了多个临时 GitHub 账户混淆视听。Unit 42 推测,攻击者可能通过违规更换邮箱的方式隐藏了关键账户信息,但 GitHub 方面并未对此说法作出明确回应。
进一步挖掘发现,有两个已被删除的 GitHub 账户参与了此次攻击。它们复刻了 Coinbase 的相关代码仓库,并修改文件指向恶意版本的 “tj-actions/changed-files”,实现了对 agentkit 仓库的非法修改。
值得注意的是,攻击者在不同阶段使用了不同的恶意有效载荷。针对 Coinbase 时,他们精准获取特定令牌;而在大规模攻击时,则通过转储内存等方式获取机密。目前,虽然还不清楚攻击者的最终目的,但鉴于 Coinbase 的业务性质,很可能与加密货币盗窃有关。截至 3 月 19 日,Coinbase 已完成漏洞修复。
此次事件为广大开发者敲响了警钟,在使用第三方代码时,一定要谨慎审查,避免类似的安全风险。