热门 GitHub Action tj-actions/changed-files 被入侵

我们很高兴宣布在 Menlo Ventures 领投下,获得了 1 亿美元的 D 轮融资。了解我们 CEO 的愿景 登录 产品支持 联系我们 点击跳转到主页

预约演示 免费试用 点击跳转到主页 预约演示 免费试用

安全

🚨 热门 GitHub Action tj-actions/changed-files 被入侵

热门的 GitHub Action tj-actions/changed-files 已经受到入侵,攻击载荷似乎试图转储密钥,影响了数千个 CI 管道。 Isaac Evans Lewis Ardern Kurt Boberg Bence Nagy 2025年3月14日 * 邮箱*在此输入您的邮箱 订阅 您的隐私对我们很重要。 提交此表格即表示您同意我们的隐私政策

分享

[ ](https://semgrep.dev/blog/2025/popular-github-action-tj-actionschanged-files-is-compromised/<https:/www.linkedin.com/shareArticle?mini=true&url=https://semgrep.dev/blog/2025/popular-github-action-tj-actionschanged-files-is-compromised&title=🚨 Popular GitHub Action tj-actions/changed-files is compromised>) 目录

  1. 您应该怎么做
  2. 受影响的版本
  3. 进一步阅读

热门的 GitHub Action tj-actions/changed-files 已经受到入侵 (GitHub 问题),攻击载荷似乎试图转储密钥,影响了数千个 CI 管道。 这不是 tj-actions/changed-files 的第一个安全问题——参见之前的漏洞 CVE-2023-51664

您应该怎么做

  1. 找出您是否受到影响 1. 找到这种情况最简单的方法是在您的代码库中 grep 搜索 tj-actions。 2. 如果您在使用 GitHub,请查看此查询的结果,将 YOURORG 替换为您的组织在 GitHub 上的名称:https://github.com/search?q=org%3A+uses%3A+tj-actions%2F&type=code 3. 可以说,对于这种情况使用 Semgrep 有点杀鸡用牛刀。 但是我们团队的 Lewis Ardern 编写了一个 Semgrep 规则来查找 tj-actions 的用法,您可以通过以下方式在本地运行它(无需将代码发送到云端):semgrep --config r/10Uz5qo/semgrep.tj-actions-compromised。 并且如果我们找到有关哪些标签和提交受到影响的更多信息,我们可以随着时间的推移更新规则,使其更精确地判断您是否可能受到影响。 在撰写本文时,似乎所有版本都受到影响。 4. 对于 Semgrep AppSec Platform 的用户,我们建议立即将检测规则置于阻止模式:访问该规则,单击“添加到策略”,然后选择“阻止模式”。

  2. 立即停止使用 tj-actions/changed-files 切换到更安全的替代方案或内联您的文件更改检测逻辑。 1. 仅将其从存储库的主分支中删除是不够的——它仍然可以在其他分支上运行,具体取决于您的操作是如何配置的。 因此,您需要从所有分支中删除它才能安全。 2. 作为替代方案,GitHub 有一项功能,允许您将 GitHub Actions 列入白名单,因此您可以确保它不会运行,即使它仍在您的代码中。

    1. 您需要一份在您的组织中使用的 GitHub Actions 列表。 在您的代码库上运行此查询:
$ semgrep -e 'uses: $ACTION' -l yaml --json .github | jq -r '.results[].extra.metavars["$ACTION"].abstract_content' | grep -vE '^(actions/|docker://|[.]/[.]github/|tj-actions/)' | awk -F'@' '{print $1 "@*,"}' | sort | uniq
DataDog/synthetics-ci-github-action@*,
actions-rs/toolchain@*,
astral-sh/setup-uv@*,
aws-actions/amazon-ecr-login@*,
  2. 从 GitHub Actions 列表中删除 tj-actions/changed-files。
  3. 转到 GitHub 设置并按如下方式进行配置:<https://github.com/semgrep/semgrep-app/settings/actions>![](https://semgrep.dev/assets/github-settings-configuration.png)
3. **通常,将所有 GitHub Actions 锁定到您知道安全的特定提交 SHA(而不是版本标签)。** 在这种情况下,似乎所有版本都受到影响。
4. **审核过去的工作流程运行中是否存在入侵迹象。** 检查日志中是否存在可疑的出站网络请求。 优先考虑 CI 运行程序日志公开的存储库,因为密钥会以有效负载的形式转储到 stdout。

受影响的版本

在撰写本文时 (2025-03-14T23:55:00Z),我们通过检查源存储库中的标签指针评估得知,所有版本的 tj-actions/changed-files 都受到入侵。 用户可以使用 git tag --points-at 0e58ed8 进行验证。 请参阅 https://github.com/tj-actions/changed-files 中的 提交 0e58ed8

进一步阅读

关于

Semgrep 使安全团队能够与开发者合作并以有机的方式左移,而不会引入摩擦。 Semgrep 让安全团队有信心他们只向开发人员呈现真实、可操作的问题,并使开发人员可以轻松地在其现有环境中修复这些问题。

来自 Semgrep 博客的精选文章,由我们的工程团队撰写

公告 2025 年 3 月 6 日 控制敏感代码,避免开发者沮丧 Jaweed Metz Katie Kent 公告 2025 年 1 月 22 日 宣布 AI AppSec 工程师,其结果与安全研究人员的意见一致率为 96% Chushi Li 开发 2025 年 1 月 22 日 我们如何构建 AppSec AI,其结果与安全研究人员的意见一致率为 96% Jack Moxon Seth Jaksik

在构建之前查找并修复重要问题

Semgrep 帮助组织左移,而不会影响开发人员的生产力。 几分钟内开始使用 预约演示 返回主页 使用安全护栏保护您的代码 ![](https://semgrep.