- GitHub Action ยอดนิยมที่ใช้ติดตามการเปลี่ยนแปลงของแต่ละ branch ถูกใช้โจมตีผ่านคอมมิตที่ถูกแฮ็ก โดยมีความพยายาม รั่วไหล CI/CD secrets
- มี Repo ได้รับผลกระทบ 23,000 แห่ง และ GitHub ได้ลบแอ็กชันนี้ออกไปแล้ว จึงไม่สามารถใช้งานได้อีกต่อไป
- ควร เปลี่ยนไปใช้แอ็กชันทดแทน และเนื่องจากมี ความเป็นไปได้ที่ secrets จะถูกเปิดเผย ใน workflow log แบบสาธารณะ จึงต้องตรวจสอบและ หมุนเวียนคีย์ทันที
- Harden-Runner ของ StepSecurity เป็นผู้ค้นพบ และกำลังแจกจ่ายแอ็กชันทดแทนที่เสริมความปลอดภัย step-security/changed-files ให้ใช้ฟรี
สรุปเหตุการณ์
tj-actions/changed-files ถูกใช้งานใน repository มากกว่า 23,000 แห่ง และเกิดการแฮ็กขึ้น
- ผู้โจมตีแก้ไขโค้ดของแอ็กชันและชี้แท็กเวอร์ชันใหม่ไปยังคอมมิตอันตราย
- ส่งผลให้ CI/CD secrets ถูกพิมพ์ออกมาใน GitHub Actions build log
- มีความเป็นไปได้ว่า secrets จะถูกเปิดเผยใน workflow log ที่เปิดสาธารณะ
- พบปัญหานี้หลังจาก Harden-Runner ตรวจพบ endpoint ที่ไม่คาดคิด
- สคริปต์ Python อันตรายทำให้เกิดการ dump secrets จากกระบวนการ Runner Worker
- ทุกแท็กถูกชี้ไปยัง malicious commit hash เดียวกัน (
0e58ed8671d6b60d0890c21b07f8835ace038e67)
มาตรการตอบสนองของ GitHub
- GitHub ได้ลบแอ็กชัน
tj-actions/changed-files และหยุดการใช้งานแล้ว
- CVE อย่างเป็นทางการคือ CVE-2025-30066
วิธีดำเนินการกู้คืน
-
1. ใช้แอ็กชันทดแทนด้านความปลอดภัยที่ StepSecurity จัดเตรียมไว้
- เปลี่ยนแอ็กชัน
tj-actions/changed-files เป็น step-security/changed-files@v45
-
2. ลบการอ้างอิง tj-actions/changed-files ทั้งหมด
-
3. ตรวจสอบ log การรันของ GitHub Actions workflow
- ต้องตรวจสอบ log การรันล่าสุดว่า secrets รั่วไหลหรือไม่
- หากพบ secrets ที่รั่วไหล ต้องหมุนเวียน (รีเซ็ต) ทันที
-
4. ตั้งค่า allowlist ของ GitHub Actions
- กำหนด allowlist ให้รันเฉพาะ GitHub Actions ที่เชื่อถือได้:
- สามารถตั้งค่าได้ใน GitHub Settings:
- Settings → Actions → Allow select actions
-
5. ตั้งค่า StepSecurity Harden-Runner
- สามารถตั้งค่าให้ Harden-Runner ตรวจสอบ network traffic และการรัน workflow ได้
ขั้นตอนถัดไป
- รายงานปัญหาไปยัง GitHub เรียบร้อยแล้ว → GitHub issue: #2463
- repository
tj-actions/changed-files ถูกลบแล้ว
- ได้รับการลงทะเบียนอย่างเป็นทางการเป็น CVE-2025-30066
- สามารถตรวจจับและป้องกันปัญหาความปลอดภัยลักษณะคล้ายกันได้ผ่าน StepSecurity Harden-Runner
- แนะนำให้ตั้งค่า Harden-Runner เพื่อเสริมความแข็งแกร่งด้านความปลอดภัยและทำ monitoring แบบเรียลไทม์
2 ความคิดเห็น
เมื่อคืนยังใช้ไม่ได้อยู่เลย แต่ตอนนี้กลับมาใช้ได้อีกแล้ว
ความเห็นจาก Hacker News
ผู้สร้างและผู้ดูแล Renovate อธิบายสถานการณ์การโจมตี
tj-actions/changed-filesในช่วงไม่กี่ปีที่ผ่านมา ความเชื่อถือต่อ dependency และส่วนขยายของบุคคลที่สามลดลง
รีโพซิทอรีกลับมาออนไลน์อีกครั้งแล้ว และนักพัฒนาได้ให้คำอธิบาย
มีการตรวจสอบ
github_eventsใน Clickhouse เพื่อยืนยันบัญชีที่ถูกใช้ในการโจมตีเป็นเรื่องน่าตกใจที่วิธีรัน CI/CD คือการอ้างอิงรีโพซิทอรีตามอำเภอใจบน GitHub
ผู้ร่วมก่อตั้ง StepSecurity อธิบายวิธีที่ตรวจพบเหตุการณ์ด้านความปลอดภัย
ปัญหาคือรูปแบบการใช้งาน GitHub Actions ตามปกติอาศัย git tag ที่ไม่คงสภาพ
กำลังจะมีการนำ GitHub Actions แบบ immutable มาใช้
โปรเจกต์ maven-lockfile อธิบาย PR ที่ถูกรวมอัตโนมัติ
GitHub Actions ควรใช้ lockfile สำหรับ dependency