CVE-2025-30066
tj-actions/changed-files 版本 45.0.7 及之前版本存在漏洞,允许远程攻击者通过读取 Actions 日志来发现密钥。
漏洞详情
严重性:高
概述
一次供应链攻击入侵了 tj-actions/changed-files 这个 GitHub Action,影响了超过 23,000 个仓库。攻击者回溯性地修改了多个版本标签,使其指向一个恶意提交,从而将 CI/CD 密钥暴露在工作流日志中。该漏洞在 2025 年 3 月 14 日至 15 日期间存在,目前已被修复。这带来了未经授权访问敏感信息的重大风险。
此漏洞已在 v46.0.1 版本中修复。
详情
这次攻击涉及修改 tj-actions/changed-files GitHub Action 以执行一个恶意 Python 脚本。该脚本从 Runner Worker 进程内存中提取密钥,并将它们打印到 GitHub Actions 日志中,使得使用公开工作流日志的仓库中的这些密钥可以被公开访问。
关键入侵指标(IoC):
- 恶意提交:
0e58ed8671d6b60d0890c21b07f8835ace038e67 - 回溯性更新的指向恶意提交的标签:
v1.0.0: 0e58ed8671d6b60d0890c21b07f8835ace038e67v35.7.7-sec: 0e58ed8671d6b60d0890c21b07f8835ace038e67v44.5.1: 0e58ed8671d6b60d0890c21b07f8835ace038e67
恶意代码执行: 恶意脚本下载并执行了一个 Python 脚本,该脚本扫描内存以寻找密钥,对其进行 Base64 编码,然后记录到构建日志中:
|
|
该脚本针对 Runner Worker 进程,提取并外泄其内存内容。
概念验证(PoC)
复现步骤:
- 创建一个使用
tj-actions/changed-files动作的 GitHub Actions 工作流:
|
|
- 运行该工作流并检查 Actions 选项卡中的日志。
- 易受攻击的工作流可能在日志中显示密钥。
检测: 使用 Harden-Runner 分析网络流量,它可以检测到对以下地址的未经授权的出站请求:
|
|
实时复现日志:
🔗 Harden-Runner Insights
当异常检测标记出对 gist.githubusercontent.com 的未经授权出站网络调用时,此攻击被 StepSecurity 检测到。
漏洞持续时间
该漏洞在 2025 年 3 月 14 日至 15 日期间处于活跃状态。
所需操作
-
审查在 3 月 14 日至 15 日期间执行的工作流:
- 检查
changed-files部分是否有意外输出。 - 使用以下命令解码可疑输出:
1echo 'xxx' | base64 -d | base64 -d - 如果输出包含敏感信息(例如令牌或密钥),请立即撤销并轮换这些密钥。
- 检查
-
更新引用受损提交的工作流:
- 如果你的工作流直接通过其 SHA 引用恶意提交,请立即更新它们以避免使用受感染的版本。
-
使用标签版本的情况:
- 如果你使用的是标签版本(例如
v35,v44.5.1),则无需采取任何操作,因为这些标签已被更新,现在可以安全使用。
- 如果你使用的是标签版本(例如
-
轮换可能暴露的密钥:
- 作为预防措施,请轮换在此时间段内可能已暴露的任何密钥,以确保工作流的持续安全。
影响
- 漏洞类型: 供应链攻击、密钥暴露、信息泄露
- 受影响对象:
- 超过 23,000 个使用
tj-actions/changed-files的仓库。 - 拥有公共仓库的组织面临最高风险,因为它们的日志可能已经泄露。
- 超过 23,000 个使用
- 潜在后果:
- CI/CD 密钥(API 密钥、云凭证、SSH 密钥)被盗。
- 未经授权访问源代码、基础设施和生产环境。
- 公共仓库中的凭证泄露,可能引发进一步的供应链攻击。
参考资料
-
tj-actions/changed-files#2463
-
https://semgrep.dev/blog/2025/popular-github-action-tj-actionschanged-files-is-compromised
-
chains-project/maven-lockfile#1111
-
rackerlabs/genestack#903
-
espressif/arduino-esp32#11127
-
modal-labs/modal-examples#1100
-
tj-actions/changed-files#2464
-
https://www.wiz.io/blog/github-action-tj-actions-changed-files-supply-chain-attack-cve-2025-30066
-
https://www.sweet.security/blog/cve-2025-30066-tj-actions-supply-chain-attack
-
tj-actions/changed-files#2477
-
https://github.com/tj-actions/changed-files/releases/tag/v46.0.1
-
GHSA-mw4p-6x4p-x5m5
-
https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2025-30066
发布日期: 2025年3月15日 最后更新: 2025年10月22日
严重性评分
CVSS 总分: 8.6(高)
CVSS v3 基础指标:
- 攻击向量:网络
- 攻击复杂度:低
- 所需权限:无
- 用户交互:无
- 范围:已更改
- 机密性:高
- 完整性:无
- 可用性:无
EPSS 评分: 89.567% (第100百分位)
弱点
- CWE-506: 嵌入恶意代码 - 产品包含看似具有恶意性质的代码。
标识符
- CVE ID: CVE-2025-30066
- GHSA ID: GHSA-mrrh-fwg8-r2c3
- 源代码: tj-actions/changed-files
致谢
- varunsh-coder (分析师)