此次供应链攻击涉及GitHub Action "tj-actions/changed-files",链攻最初是击事件针对Coinbase的一个开源项目的高度定向攻击,随后演变为范围更广的袭个泄露威胁。 Palo Alto Networks Unit 42在一份报告中指出:“攻击载荷主要针对其开源项目agentkit的仓库公共CI/CD流程,可能是暴露为了利用它进行进一步的攻击 。然而,密钥攻击者未能使用Coinbase的链攻密钥或发布软件包
。” 该事件于2025年3月14日曝光,击事件当时发现"tj-actions/changed-files"被入侵,源码库袭个泄露注入了泄露运行该工作流的仓库仓库中敏感密钥的代码。该漏洞被分配了CVE标识符CVE-2025-30066(CVSS评分:8.6)。暴露 根据Endor Labs的密钥估计
,218个GitHub仓库因这次供应链攻击暴露了其密钥,链攻泄露的击事件信息主要包括DockerHub
、npm和亚马逊云服务(AWS)的袭个泄露“几十个”凭证,以及GitHub安装访问令牌。 安全研究员Henrik Plate表示:“考虑到成千上万的仓库依赖于这个GitHub Action,供应链攻击的初始规模听起来很可怕。服务器租用然而,深入分析工作流、运行情况和泄露的密钥后,发现实际影响比预期的要小 :‘仅’218个仓库泄露了密钥
,其中大多数是短期的GITHUB_TOKEN,一旦工作流运行完成就会过期。” 此后
,另一个名为"reviewdog/action-setup"的GitHub Action的v1标签也被入侵 ,该标签通过"tj-actions/eslint-changed-files"作为依赖项被"tj-actions/changed-files"使用,其攻击载荷与tj-actions事件类似
。亿华云"reviewdog/action-setup"的漏洞被追踪为CVE-2025-30154(CVSS评分 :8.6)
。 据称,CVE-2025-30154的利用使未识别的威胁行为者获得了与"tj-actions/changed-files"相关的个人访问令牌(PAT)
,从而允许他们修改仓库并推送恶意代码,进而影响了所有依赖该Action的GitHub仓库。 Unit 42的研究人员Omer Gil、Aviad Hahami、Asi Greenholts和Yaron Avital表示 :“当执行tj-actions/eslint-changed-files Action时
,tj-actions/changed-files CI运行器的密钥被泄露,香港云服务器攻击者得以窃取运行器中使用的凭证
,包括属于tj-bot-actions GitHub用户账户的个人访问令牌(PAT)。” 目前怀疑攻击者设法获得了对reviewdog组织具有写权限的令牌,以进行恶意修改。然而
,该令牌的获取方式目前仍不清楚
。 此外,对"reviewdog/action-setup"的恶意提交据称是通过首先分叉相应仓库,提交更改
,然后创建分叉拉取请求到原始仓库,模板下载最终引入任意提交——这种情况被称为“悬空提交”。 Palo Alto Networks的高级研究经理Gil告诉The Hacker News
:“攻击者采取了多种技术手段来掩盖其踪迹,例如利用悬空提交、创建多个临时GitHub用户账户
,以及在工作流日志中混淆其活动(尤其是在最初的Coinbase攻击中) 。这些发现表明
,攻击者技术高超 ,对CI/CD安全威胁和攻击策略有深刻理解。” Unit 42推测 ,分叉拉取请求背后的用户账户"iLrmKCu86tjwp8"可能在攻击者从注册时提供的合法电子邮件地址切换到一次性(或匿名)电子邮件后从公众视野中隐藏,这可能导致该用户的免费模板所有交互和操作被隐藏
。然而 ,GitHub在回应时既未确认也未否认这一假设,但表示正在积极审查情况并采取必要措施。 GitHub发言人告诉The Hacker News:“目前没有证据表明GitHub或其系统遭到入侵 。所提及的项目是用户维护的开源项目。” “GitHub继续根据GitHub的可接受使用政策审查并处理与仓库内容相关的用户报告,包括恶意软件和其他恶意攻击。用户应始终在更新到新版本之前审查GitHub Actions或他们代码中使用的任何其他包。这一点在这里与所有其他使用第三方代码的情况一样。” 对tj-actions/changed-files的GitHub分叉的深入搜索发现了另外两个账户"2ft2dKo28UazTZ"和"mmvojwip"
,这两个账户此后已从平台上删除
。这两个账户还被发现创建了与Coinbase相关的仓库的分叉,如onchainkit
、agentkit和x402。 进一步检查发现,这些账户通过分叉拉取请求修改了agentkit仓库中的"changelog.yml"文件,指向之前使用PAT发布的恶意版本的"tj-actions/changed-files"。 据信,攻击者获得了对agentkit仓库具有写权限的GitHub令牌——这反过来是由执行tj-actions/changed-files GitHub Actions促成的——以便进行未经授权的更改
。 另一个值得强调的重要方面是两种情况下使用的攻击载荷的差异,表明攻击者试图保持低调 。 Gil表示
:“攻击者在攻击的不同阶段使用了不同的攻击载荷。例如,在大规模攻击中,攻击者转储了运行器的内存,并将存储为环境变量的密钥打印到工作流的日志中
,无论哪个工作流正在运行。然而,在针对Coinbase时,攻击者专门获取了GITHUB_TOKEN,并确保只有在仓库属于Coinbase时才会执行攻击载荷 。” 目前尚不清楚此次攻击的最终目标是什么
,但Gil指出,“强烈”怀疑其意图是经济利益,可能是试图进行加密货币盗窃,考虑到对Coinbase的高度针对性。截至2025年3月19日,该加密货币交易所已修复了攻击。 目前也不清楚是什么促使攻击者改变策略,将最初的有针对性的攻击转变为大规模且不那么隐秘的行动
。 Gil表示:“一种假设是 ,在意识到他们无法利用其令牌毒害Coinbase仓库——并得知Coinbase已检测并缓解了攻击后——攻击者担心失去对tj-actions/changed-files Action的访问权限。由于入侵此Action可能提供对许多其他项目的访问权限
,他们可能决定迅速采取行动 。这可以解释为什么他们在Coinbase缓解其暴露后仅20分钟就发起了大规模攻击,尽管检测风险增加 。”
image