ภาพเครื่องบริการ repository สีเขียวเข้มที่ตะขอสีอำพันเบี่ยงสายงานจากรางปกติเข้าสู่ห้องประมวลผลอย่างผิดปกติ

CISA พบการโจมตี Gitea CVE-2026-60004: ช่อง Git Hook ที่พาไปถึง RCE

พี่โชว์Engineering

ช่องโหว่ที่ “มี patch แล้ว” ยังไม่จบถ้าผู้โจมตีเริ่มใช้จริง CISA เพิ่ม CVE-2026-60004 ของ Gitea เข้า Known Exploited Vulnerabilities catalog เมื่อ 25 สิงหาคม 2026 นั่นเปลี่ยนลำดับความสำคัญจากการวางแผนอัปเดตตามรอบ เป็นการตรวจและปิดช่องแบบ incident

Gitea advisory จัดระดับ Critical และระบุว่าปัญหาในฟังก์ชัน diffpatch อาจนำไปสู่การติดตั้ง Git hook และ remote code execution โดยไม่ต้องยืนยันตัวตน รุ่นที่ได้รับผลกระทบคือ 1.17.0 ถึงก่อน 1.27.1 และแก้แล้วใน 1.27.1

WHY: Git hook คือคำสั่งที่รอเหตุการณ์มาปลุก

Git hook เป็นสคริปต์ที่รันเมื่อเกิดเหตุการณ์บางอย่าง เช่นรับ push หรือทำ operation ใน repository ปกติมันเป็นเครื่องมือ automation ที่มีประโยชน์ แต่ถ้าผู้โจมตีวาง hook ได้ ก็เหมือนซ่อนสวิตช์ไว้ในโรงงานแล้วรอให้พนักงานทำงานประจำเพื่อเปิดเครื่องของเขา

ผลกระทบ RCE หรือ remote code execution หมายถึงผู้โจมตีอาจรันคำสั่งด้วยสิทธิ์ของ process Gitea จากนั้นมองหา repository, token, SSH key, database credential หรือ network path ที่ process เข้าถึงได้ สิทธิ์ของ service account และ isolation จึงกำหนด blast radius มากพอ ๆ กับตัว CVE

CISA KEV catalog เป็นหลักฐานว่ามีการใช้ช่องโหว่ในโลกจริง ไม่ได้บอกว่า instance ของเราถูกเจาะแล้ว แต่ก็ไม่ควรรอ proof-of-concept สาธารณะก่อนจัดการ

HOW: ปิดช่องพร้อมเก็บร่องรอย

เริ่มด้วย read-only inventory: เวอร์ชัน Gitea, exposure ต่ออินเทอร์เน็ต, topology หลัง reverse proxy, repository storage path, user ของ process และ credential ที่ service อ่านได้ ถ้าอยู่ในช่วง >=1.17.0 และ <1.27.1 ให้ถือว่าได้รับผลกระทบ

จากนั้นดำเนินการตาม incident/change process:

  1. จำกัดการเข้าถึงจากอินเทอร์เน็ตหรือวาง WAF/ACL ชั่วคราว โดยไม่อ้างว่าเป็น patch
  2. เก็บ application, reverse-proxy, system และ audit logs ออกไปยังที่รักษาหลักฐาน
  3. snapshot metadata ที่จำเป็นตามนโยบาย forensic ก่อนเปลี่ยนไฟล์จำนวนมาก
  4. อัปเดต Gitea เป็น 1.27.1 หรือใหม่กว่าที่ vendor รองรับ แล้วตรวจ migration notes
  5. ตรวจ hook และไฟล์ executable ที่สร้างหรือเปลี่ยนใน repository storage อย่างผิดปกติ
  6. ตรวจ child process, outbound connection, scheduled task และบัญชี/token ที่เพิ่มใกล้ช่วงเสี่ยง
  7. rotate credential ตาม exposure หลังเก็บหลักฐานเพียงพอ และเพิกถอน session ที่ไม่รู้จัก

ถ้าใช้ container อย่าถือว่าการสร้าง container ใหม่ล้างทุกอย่าง Repository volume, database และ secret store อาจยังอยู่เหมือนเดิม ตรวจ persistence ทุกชั้นและ provenance ของ image ที่นำมาแทนด้วย

ตรวจความเสียหายโดยไม่รัน hook ที่น่าสงสัย

อย่าเปิดหรือ trigger repository operation แบบสุ่มบน production เพื่อดูว่า hook ทำงานไหม เพราะนั่นอาจเป็นการสั่ง payload เอง ให้ทำสำเนาหลักฐานตามกระบวนการ, วิเคราะห์แบบไม่ execute และใช้ทีม incident response หากพบไฟล์หรือ process ไม่รู้จัก

หลัง patch ให้ทดสอบ clone, fetch, push ไป test repository, web UI, webhook และ background jobs ด้วยบัญชีจำกัดสิทธิ์ จากนั้นดูว่า log ยังไหลเข้าระบบกลางและ alert สำหรับ process/network anomaly ทำงาน

ระยะยาว ลดสิทธิ์ service account, แยก network egress, เก็บ repository storage ไม่ให้ execute เมื่อสถาปัตยกรรมรองรับ และทำให้ audit log ออกจากเครื่องทันที มาตรการเหล่านี้ไม่แทน patch แต่ลดรัศมีหากช่องโหว่ถัดไปเกิดในเส้นทางคล้ายกัน

บทความนี้ไม่มีคำสั่ง exploit หรือขั้นตอนทดสอบระบบของผู้อื่น จุดประสงค์คือช่วยเจ้าของระบบป้องกัน asset ที่ได้รับอนุญาตเท่านั้น

Recap

Gitea CVE-2026-60004 ร้ายแรงเพราะเปิดเส้นทางจาก diffpatch ไปสู่ Git hook และ RCE โดย CISA ยืนยันว่ามีการใช้โจมตีจริงแล้ว รุ่น 1.17.0 ถึงก่อน 1.27.1 อยู่ในขอบเขตเสี่ยง

จำลำดับให้สั้น: ระบุรุ่นและ exposure, เก็บหลักฐาน, จำกัดทางเข้า, patch, แล้ว hunt หา hook/process/credential ที่ผิดปกติ การอัปเดตหยุดช่องใหม่ แต่การตรวจย้อนหลังคือสิ่งที่ตอบว่าผู้โจมตีเข้ามาก่อนหน้านั้นหรือไม่ครับ