漏洞概述
CVE-2025-30066 是一个影响 tj-actions/changed-files GitHub Action 的高危供应链攻击漏洞。该漏洞允许远程攻击者通过读取Actions日志来发现敏感密钥。受影响版本为45.0.7及之前的所有版本,已修复版本为46.0.1。
漏洞详情
攻击时间线
漏洞活跃期为2025年3月14日至3月15日。攻击者通过供应链攻击手段,在短时间内修改了多个版本标签,使其指向包含恶意代码的提交。
攻击手法
- 恶意提交标识:
0e58ed8671d6b60d0890c21b07f8835ace038e67 - 被篡改的版本标签:
v1.0.0v35.7.7-secv44.5.1
攻击者修改了这些标签,使其指向上述恶意提交。
恶意代码执行
受感染的Action会执行一个Python脚本,该脚本通过以下命令获取并运行:
|
|
该脚本的功能包括:
- 扫描Runner Worker进程内存
- 提取敏感密钥(API密钥、云凭证、SSH密钥等)
- 将密钥进行Base64编码
- 将编码后的密钥输出到GitHub Actions日志中
影响范围
- 直接受影响仓库:超过23,000个使用
tj-actions/changed-files的仓库 - 最高风险群体:拥有公开仓库的组织,因为其工作流日志可能已被泄露
- 潜在后果:
- CI/CD密钥被盗(API密钥、云凭证、SSH密钥)
- 对源代码、基础设施和生产环境的未授权访问
- 公开仓库中的凭证泄露,可能引发进一步的供应链攻击
漏洞复现步骤
- 创建一个使用受影响版本
tj-actions/changed-files的GitHub Actions工作流:
|
|
- 运行工作流并在Actions标签页检查日志
- 受影响的工作流可能在日志中显示编码后的密钥
检测方法
网络流量分析
使用Harden-Runner工具检测未经授权的出站请求,特别是对以下域的请求:
gist.githubusercontent.com
日志检查
检查2025年3月14日至15日期间执行的changed-files工作流,查找以下异常:
- 日志中出现意外的Base64编码输出
- 使用以下命令解码可疑输出:
|
|
修复措施
1. 立即行动
检查受影响的工作流:
- 审查2025年3月14日至15日期间执行的所有工作流
- 检查
changed-files部分是否有异常输出
更新工作流引用:
- 如果工作流直接引用了恶意提交SHA(
0e58ed8671d6b60d0890c21b07f8835ace038e67),立即更新 - 使用最新安全版本:
@v46.0.1或更高版本
旋转暴露的密钥:
- 作为预防措施,旋转在此时间段内可能暴露的所有密钥
- 包括API密钥、云凭证、SSH密钥等
2. 版本标签说明
- 已修复标签:
v35、v44.5.1等标签已被更新,现在可以安全使用 - 需要手动更新:直接引用恶意提交SHA的工作流
3. 长期防护建议
- 使用固定版本号而非浮动标签
- 定期审查依赖项的安全性
- 启用GitHub Advanced Security功能
- 配置Dependabot警报
技术指标
CVSS评分
- 总体评分:8.6(高危)
- 攻击向量:网络
- 攻击复杂度:低
- 所需权限:无
- 用户交互:无
- 影响范围:改变
- 机密性影响:高
- 完整性影响:无
- 可用性影响:无
弱点分类
- CWE-506:嵌入式恶意代码
EPSS评分
- 90.878%:未来30天内被利用的概率(第100百分位)
参考资源
-
官方公告:
-
技术分析:
-
社区讨论:
总结
tj-actions/changed-files供应链攻击事件凸显了第三方依赖在CI/CD流水线中的安全风险。组织应立即采取行动,检查受影响的工作流、更新依赖版本、旋转可能暴露的密钥,并实施长期的安全监控措施,以防止类似攻击的再次发生。