แฮกเกอร์ใช้ช่องโหว่ใน GitHub Action ฝังโค้ดอันตรายขโมยข้อมูลจาก 218 Repo
แฮกเกอร์ใช้ประโยชน์จากช่องโหว่ใน "reviewdog/action-setup" และ "tj-actions changed-files" ซึ่งเป็น GitHub Actions ในการฝัง Payload ที่รันโค้ดอันตรายบน Runners ของ GitHub Payload ดังกล่าวจะ Dump หน่วยความจำของ Runner และ Environment Variable ออกมาใน Log ซึ่งอาจมี Secrets และ Tokens อยู่ด้วย เนื่องจาก Runners ใช้ Environment Variable เก็บ Credential เช่น AWS Keys, GITHUB_TOKEN, NPM Tokens ฯลฯ ช่องโหว่ที่ใช้ในการโจมตีมีรายละเอียดดังนี้:
- CVE-2025-30066 (คะแนน CVSS 8.6/10 ระดับความรุนแรง High) เป็นช่องโหว่ที่แฮกเกอร์สามารถ Remote ค้นหาใน Secret ได้โดยการอ่าน Logs ของ GitHub Actions โดยเวอร์ชันที่ได้รับผลกระทบของ "tj-actions/changed-files" ได้แก่ ตั้งแต่เวอร์ชัน 1 ถึงก่อนเวอร์ชัน 46 เนื่องจากแฮกเกอร์แก้ไขโค้ดให้ชี้ไปที่ Commit รหัส 0e58ed8 ซึ่งมีโค้ดอันตรายชื่อว่า "updateFeatures" อยู่
- CVE-2025-30154 (คะแนน CVSS 8.6/10 ระดับความรุนแรง High) เป็นช่องโหว่ใน "reviewdog/action-setup" เวอร์ชัน 1 ซึ่งเป็น GitHub Action ที่ใช้สำหรับติดตั้งเครื่องมือ reviewdog โดยแฮกเกอร์ฝังโค้ดที่อันตรายเพื่อทำการ Dump Secrets ลงใน GitHub Actions Workflow Logs นอกจากนี้ยังมี GitHub Actions อื่น ๆ ที่ใช้ reviewdog ได้รับผลกระทบด้วย ไม่ว่าจะใช้เป็นเวอร์ชันใดหรือจะ Pin แบบใดก็ตาม ได้แก่
- "reviewdog/action-setup"
- "reviewdog/action-shellcheck"
- "reviewdog/action-composite-template"
- "reviewdog/action-staticcheck"
- "reviewdog/action-ast-grep"
- "reviewdog/action-typos"
โดยมีการคาดคะเนว่าจุดเริ่มต้นของการโจมตี "tj-actions/changed-files" อาจเริ่มจาก reviewdog/action-setup เนื่องจาก Action "tj-actions/eslint-changed-files" ซึ่งเป็น Dependency ของ "tj-actions/changed-files" ที่มีการใช้งาน "reviewdog/action-setup" เพราะฉะนั้นแฮกเกอร์เสมือนใช้ "reviewdog/action-setup" เป็นเหมือนทางผ่านไปยัง "tj-actions/changed-files" และใช้ Personal Access Token (PAT) ที่ได้จากการ Dump หน่วยความจำออกมาเพื่อ Push โค้ด อันตราย กลับเข้า Repository จากนั้น Action ที่แก้ไขก็ถูกใช้ใน Workflow ของผู้ใช้ทั่วไปที่ไม่รู้ตัวว่ามี Payload แฝงอยู่
รูปที่ 1: ตัวอย่างการโจมตี
ผลกระทบจากการโจมตี
จากการโจมตีโดยใช้ช่องโหว่ดังกล่าวส่งผลให้เกิดการรั่วไหลของข้อมูลต่าง ๆ เช่น ข้อมูล Credential ของ DockerHub, npm, AWS และ GitHub ไม่ว่าจะเป็น Password, Token หรือ Access Key ซึ่งแฮกเกอร์อาจใช้ข้อมูล Credential ต่าง ๆ ในการขยายขอบเขตโจมตีเพิ่มเติมได้
สรุปการโจมตี
การโจมตีเริ่มจากแฮกเกอร์พยายามเข้าถึง GitHub Action ที่นิยมใช้งานกันทั่วไป เช่น reviewdog/action-setup และ tj-actions/changed-files เพื่อฝังโค้ดหรือ Payload ที่อันตรายไว้ในการขโมยข้อมูลต่าง ๆ จาก Repository ที่ใช้งาน Action นี้รวมไปถึง Action ที่เกี่ยวข้องด้วย
คำแนะนำ
- อัปเดต "tj-actions/changed-files" และ "reviewdog/action-setup" เป็นเวอร์ชันที่ปลอดภัยหรือล่าสุด
- ติดตามและปฏิบัติตามวิธีการแก้ไขปัญหาตามประกาศของ GitHub
- ตรวจสอบ GitHub Action ก่อนใช้งานจริง
- ไม่ใช้ Actions แบบ Reference ด้วย Tag ที่เปลี่ยนแปลงได้ง่าย เช่น "@v1" และ "@latest"
- แนะนำให้ Pin ด้วย Commit SHA Hash เฉพาะ
แหล่งอ้างอิง
https://thehackernews.com/2025/03/github-supply-chain-breach-coinbase.html
https://www.wiz.io/blog/new-github-action-supply-chain-attack-reviewdog-action-setup
https://unit42.paloaltonetworks.com/github-actions-supply-chain-attack/