HackerNews 编译,转载请注明出处:
一起大规模供应链攻击涉及 GitHub Action “tj-actions/changed-files”,起初是针对 Coinbase 一个开源项目的精准攻击,之后发展为更大范围的攻击。
帕洛阿尔托网络公司 42 号单元在报告中指出:“攻击载荷专注于利用他们一个开源项目的公共 CI/CD 流程——agentkit,可能目的是利用它进行进一步的攻击行为。然而,攻击者未能使用 Coinbase 的机密信息或发布软件包。”
2025 年 3 月 14 日,人们发现 “tj-actions/changed-files” 被攻破,注入了泄露运行该工作流的仓库敏感机密信息的代码,该事件被赋予 CVE 编号 CVE-2025-30066(CVSS 评分:8.6)。
据恩多尔实验室估计,218 个 GitHub 仓库因此次供应链攻击泄露了机密信息,大部分泄露信息包括 “几十个” DockerHub、npm 和亚马逊网络服务(AWS)的凭证,以及 GitHub 安装访问令牌。
安全研究员亨里克・普拉特表示:“考虑到有数万个仓库依赖 GitHub Action,此次供应链攻击的初始规模听起来令人恐惧。然而,深入研究工作流、运行情况和泄露的机密信息会发现,实际影响比预期小:只有 218 个仓库泄露了机密信息,其中大部分是短生命周期的 GITHUB_TOKEN,一旦工作流运行完成就会过期。”
此后,另一个 GitHub Action “reviewdog/action-setup” 的 v1 标签也被攻破,该 Action 通过 “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 仓库。
当 “tj-actions/eslint-changed-files” Action 被执行时, “tj-actions/changed-files” CI 运行器的机密信息被泄露,允许攻击者窃取运行器中使用的凭证,包括属于 tj-bot-actions GitHub 用户账户的个人访问令牌(PAT)。
目前怀疑攻击者以某种方式获取了具有写入权限的令牌,从而能够访问 reviewdog 组织并进行恶意修改。不过,攻击者获取该令牌的方式目前尚不清楚。
此外,对 “reviewdog/action-setup” 的恶意提交是通过首先分叉相应仓库,向其提交更改,然后向原始仓库创建分叉拉取请求,最终引入任意提交来完成的——这种情况被称为悬垂提交。
“攻击者采取了重大措施来掩盖他们的踪迹,使用了各种技术,例如利用悬垂提交,创建多个临时 GitHub 用户账户,以及在工作流日志中模糊他们的活动(尤其是在最初的 Coinbase 攻击中),”帕洛阿尔托网络公司高级研究经理吉尔告诉《黑客新闻》,“这些发现表明攻击者技术高超,对 CI/CD 安全威胁和攻击战术有深入了解。”
42 号单元推测,分叉拉取请求背后的用户账户 “iLrmKCu86tjwp8” 可能被隐藏,因为攻击者在注册时从提供的合法电子邮件地址切换到了一次性(或匿名)电子邮件,违反了 GitHub 的政策。
这可能导致用户的所有交互和操作都被隐藏。然而,当被要求置评时,GitHub 既未确认也未否认这一假设,但表示正在积极审查情况并根据需要采取行动。
“目前没有证据表明 GitHub 或其系统被攻破。所强调的项目是用户维护的开源项目,”GitHub 一位发言人告诉《黑客新闻》。
“GitHub 继续根据《可接受使用政策》审查并采取行动,处理用户关于仓库内容的报告,包括恶意软件和其他恶意攻击。用户在更新到新版本之前,应始终审查 GitHub Actions 或他们代码中使用的任何其他软件包。这一点在此处和其他使用第三方代码的情况中都是真实的。”
对 tj-actions/changed-files 的 GitHub 分叉的深入搜索导致发现了另外两个账户 “2ft2dKo28UazTZ” 和 “mmvojwip”,这两个账户都已被从平台上删除。这两个账户也被发现创建了 Coinbase 相关仓库的分叉,如 onchainkit、agentkit 和 x402。
进一步检查发现,这些账户通过分叉拉取请求修改了 agentkit 仓库中的 “changelog.yml” 文件,指向使用 PAT 更早发布的恶意版本的 “tj-actions/changed-files”。
据信,攻击者获取了具有写入权限的 GitHub 令牌,从而能够访问 agentkit 仓库——这是由执行 tj-actions/changed-files GitHub Actions 促成的——以便进行未经授权的更改。
另一个值得强调的重要方面是两种情况下使用的攻击载荷的差异,这表明攻击者试图保持低调。
“攻击者在攻击的不同阶段使用了不同的攻击载荷。例如,在广泛攻击中,攻击者转储了运行器的内存,并将存储为环境变量的机密信息打印到工作流的日志中,无论运行的是哪个工作流,”吉尔说。
“然而,在针对 Coinbase 的攻击中,攻击者专门获取了 GITHUB_TOKEN,并确保攻击载荷只在仓库属于 Coinbase 时执行。”
目前尚不清楚此次行动的最终目标是什么,但 “强烈” 怀疑其意图是为了经济利益,很可能是试图进行加密货币盗窃,考虑到对 Coinbase 的高度针对性,吉尔指出。截至 2025 年 3 月 19 日,加密货币交易所已经修复了此次攻击。
此外,目前也不清楚是什么促使攻击者改变策略,将最初的目标攻击转变为大规模且不太隐蔽的行动。
“一种假设是,在意识到他们无法利用其令牌来污染 Coinbase 仓库——并且在得知 Coinbase 已经检测并缓解了攻击之后——攻击者担心失去对 tj-actions/changed-files Action 的访问权限。”吉尔说。
“由于攻破此 Action 可以提供对许多其他项目的访问权限,他们可能决定迅速采取行动。这可以解释为什么他们在 Coinbase 在其端点缓解了暴露风险仅 20 分钟后就发起了广泛攻击,尽管这增加了被发现的风险。”
消息来源:The Hacker News;
本文由 HackerNews.cc 翻译整理,封面来源于网络;
转载请注明“转自 HackerNews.cc”并附上原文