
ศูนย์ประสานการรักษาความมั่นคงปลอดภัยระบบคอมพิวเตอร์แห่งชาติ (ThaiCERT) ขอแจ้งเตือนหน่วยงานที่ใช้งาน Gemini CLI และ GitHub Action (run-gemini-cli) ให้เร่งตรวจสอบและอัปเดตโดยด่วน เนื่องจากพบช่องโหว่ร้ายแรง โดยมีค่าความรุนแรง CVSS v3.1 10.0 ซึ่งอาจทำให้ผู้โจมตีสามารถสั่งรันคำสั่งบนระบบที่ใช้รัน CI/CD หรือ GitHub Actions ได้โดยไม่ได้รับอนุญาต
1. รายละเอียดช่องโหว่ [1]
ช่องโหว่ดังกล่าวเกิดจากการที่ Gemini CLI ตั้งค่าให้เชื่อถือโฟลเดอร์โปรเจกต์ (workspace) โดยอัตโนมัติ เมื่อทำงานในโหมดไม่ต้องโต้ตอบกับผู้ใช้ (headless mode) เช่น การใช้งานในระบบ CI/CD หรือ GitHub Actions ส่งผลให้เวอร์ชันก่อนหน้าสามารถโหลดค่า configuration และ environment variables จากไดเรกทอรี .gemini/ ภายใน repository ได้โดยไม่มีการตรวจสอบความน่าเชื่อถืออย่างเพียงพอ
ปัจจุบันยังไม่พบการกำหนดรหัสช่องโหว่ในรูปแบบ CVE อย่างเป็นทางการ โดยช่องโหว่นี้ถูกเผยแพร่ผ่านระบบ GitHub Security Advisory (GHSA) ดังนี้
GHSA-wpqr-6v78-jr5g (CVSS v3.1: 10.0) [2] เป็นช่องโหว่ใน Gemini CLI และ GitHub Action (run-gemini-cli) ที่เกิดจากการตั้งค่าให้ระบบเชื่อถือโปรเจกต์ (workspace/repository) โดยอัตโนมัติ ทำให้เครื่องมือสามารถอ่านและนำไฟล์ตั้งค่าหรือคำสั่งภายในโปรเจกต์ไปใช้งานได้ทันทีโดยไม่มีการตรวจสอบความน่าเชื่อถืออย่างเพียงพอ ส่งผลให้หาก workflow มีการประมวลผลข้อมูลจากแหล่งที่ไม่น่าเชื่อถือ เช่น Pull Request จากบุคคลภายนอก ผู้โจมตีอาจสามารถแฝงคำสั่งอันตราย และ ถูกนำไปรันบนระบบ CI/CD ได้โดยไม่ได้รับอนุญาต
2. ผลิตภัณฑ์ที่ได้รับผลกระทบ
ผลิตภัณฑ์และเวอร์ชันที่ได้รับผลกระทบ ได้แก่
* @google/gemini-cli เวอร์ชันต่ำกว่า 0.39.1
* @google/gemini-cli เวอร์ชันต่ำกว่า 0.40.0-preview.3
* google-github-actions/run-gemini-cli เวอร์ชันต่ำกว่า 0.1.22
ทั้งนี้ ผู้พัฒนาได้ออกเวอร์ชันแก้ไขแล้ว ได้แก่
* @google/gemini-cli เวอร์ชัน 0.39.1
* @google/gemini-cli เวอร์ชัน 0.40.0-preview.3
* google-github-actions/run-gemini-cli เวอร์ชัน 0.1.22
3. ผลกระทบที่อาจเกิดขึ้น
หากระบบได้รับผลกระทบและถูกโจมตีสำเร็จ ผู้โจมตีอาจสามารถสั่งรันคำสั่งบนเครื่อง runner หรือ host ที่ใช้ประมวลผล workflow ได้โดยไม่ได้รับอนุญาต ซึ่งอาจนำไปสู่การเข้าถึง source code, secrets, tokens, environment variables, credentials หรือข้อมูลสำคัญภายใน pipeline รวมถึงอาจใช้ระบบ CI/CD เป็นช่องทางต่อยอดการโจมตี supply chain ไปยังระบบอื่นขององค์กรได้
4. แนวทางการแก้ไขและป้องกัน
4.1 อัปเดต @google/gemini-cli เป็นเวอร์ชัน 0.39.1 หรือ 0.40.0-preview.3 ขึ้นไป
4.2 อัปเดต google-github-actions/run-gemini-cli เป็นเวอร์ชัน 0.1.22 ขึ้นไป
4.3 ตรวจสอบ GitHub Actions หรือ CI/CD workflow ที่ใช้งาน Gemini CLI ใน headless mode
4.4 หาก workflow ประมวลผลข้อมูลจากแหล่งที่เชื่อถือได้เท่านั้น เช่น Pull Request จาก collaborator ที่ได้รับอนุญาต (เฉพาะกรณีที่ยืนยันว่าเป็นแหล่งที่เชื่อถือได้เท่านั้น สามารถกำหนดค่า GEMINI_TRUST_WORKSPACE: ‘true’)
4.5 หาก workflow ประมวลผลข้อมูลจากแหล่งที่ไม่น่าเชื่อถือ เช่น Pull Request จากบุคคลภายนอก ควรปรับ workflow ให้ไม่โหลด configuration หรือ environment variables จาก repository โดยอัตโนมัติ
4.6 ตรวจสอบ secrets, tokens และ credentials ที่อาจถูกเข้าถึงจากระบบ CI/CD runner และพิจารณากำหนดอายุการใช้งานของข้อมูล เพื่อลดความเสี่ยง
5. แนวทางการลดความเสี่ยงชั่วคราว
5.1 ระงับหรือจำกัด workflow ที่ใช้งาน Gemini CLI กับ Pull Request จากบุคคลภายนอกชั่วคราว
5.2 หลีกเลี่ยงการให้ workflow ที่ใช้ AI agent เข้าถึง secrets หรือ credentials โดยไม่จำเป็น
5.3 จำกัดสิทธิ์ของ GitHub token และ service account ให้เป็นแบบ least privilege
5.4 แยก runner สำหรับงานที่ประมวลผลข้อมูลจากแหล่งที่ไม่น่าเชื่อถือออกจาก runner ที่ใช้กับระบบสำคัญ
5.5 ตรวจสอบ log ของ workflow เพื่อค้นหาการเรียกใช้คำสั่งผิดปกติ การเข้าถึง secrets หรือการเปลี่ยนแปลงไฟล์ configuration ที่ไม่พึงประสงค์
แหล่งอ้างอิง
