ช่องโหว่ความปลอดภัยร้ายแรงใน CodeRabbit ซึ่งเป็นเครื่องมือตรวจสอบโค้ดที่ขับเคลื่อนด้วย AI อาจทำให้ผู้โจมตีสามารถเข้าถึงและแก้ไข GitHub repositories กว่า 1 ล้านแห่งได้ ช่องโหว่นี้ถูกค้นพบโดยนักวิจัยด้านความปลอดภัยจาก Kudelski Security ในเดือนมกราคม 2025 ซึ่งพบว่าเครื่องมือดังกล่าวทำการรันโค้ดที่ผู้ใช้ส่งมาโดยไม่มีการแยกที่เหมาะสม ทำให้ข้อมูลรับรองการเข้าถึงที่สำคัญถูกเปิดเผย
CodeRabbit เป็นบริการยอดนิยมที่ใช้โมเดลภาษาขนาดใหญ่ในการวิเคราะห์การเปลี่ยนแปลงของโค้ดและให้คำแนะนำด้านความปลอดภัย เครื่องมือนี้ต้องการสิทธิ์การเข้าถึง GitHub อย่างกว้างขวางเพื่อให้ทำงานได้ รวมถึงสิทธิ์ในการแก้ไข repositories ซึ่งทำให้ช่องโหว่นี้อันตรายเป็นพิเศษ
สิทธิ์การเข้าถึง GitHub ที่ CodeRabbit ต้องการ:
- สิทธิ์อ่านเนื้อหาในที่เก็บข้อมูล (repository)
- สิทธิ์เขียนเนื้อหาในที่เก็บข้อมูล (repository)
- การเข้าถึง pull requests และ issues
- ความสามารถในการสร้างและแก้ไข branches
- การเข้าถึง metadata และการตั้งค่าของที่เก็บข้อมูล (repository)
![]() |
---|
ส่วนติดต่อการเข้าสู่ระบบของ CodeRabbit ที่ผู้ใช้สามารถเข้าถึงเครื่องมือตรวจสอบโค้ดที่ขับเคลื่อนด้วย AI |
สาเหตุหลัก: การรันโค้ดที่ไม่ปลอดภัย
ช่องโหว่นี้เกิดจากการที่ CodeRabbit ใช้ Rubocop ซึ่งเป็นเครื่องมือวิเคราะห์โค้ด Ruby โดยทำงานนอกสภาพแวดล้อม sandbox ที่ปลอดภัย เมื่อประมวลผลการตรวจสอบโค้ด ระบบจะรันเครื่องมือภายนอกเช่น Rubocop โดยมีการเข้าถึงตัวแปรสภาพแวดล้อมที่มีข้อมูลสำคัญอย่าง API keys และ authentication tokens ผู้โจมตีสามารถใช้ประโยชน์จากช่องโหว่นี้ได้โดยการส่งไฟล์กำหนดค่า Rubocop ที่เป็นอันตรายซึ่งจะรันโค้ดใดๆ ก็ได้บนเซิร์ฟเวอร์ของ CodeRabbit
นักวิจัยได้แสดงให้เห็นว่าพวกเขาสามารถดึงข้อมูลรับรองที่สำคัญได้ รวมถึง GitHub private keys, API tokens สำหรับบริการต่างๆ และ AWS access keys ข้อมูลรับรองเหล่านี้สามารถนำไปใช้เพื่อเข้าถึงและแก้ไข repository ใดๆ ที่ได้ให้สิทธิ์กับ CodeRabbit
ข้อมูลประจำตัวที่ถูกเปิดเผย:
- คีย์ส่วนตัวของ GitHub และโทเค็น API
- คีย์ API ของ AWS
- คีย์ API ของ Anthropic และ OpenAI
- พารามิเตอร์การเชื่อมต่อฐานข้อมูล
- โทเค็นเซสชันและข้อมูลประจำตัวผู้ใช้
![]() |
---|
ส่วนของโค้ดจากแอปพลิเคชัน Python ที่เน้นการแจ้งเตือนด้านความปลอดภัยซึ่งจัดการกับช่องโหว่ที่อาจเกิดขึ้น |
ความกังวลของชุมชนเกี่ยวกับความโปร่งใส
ชุมชนด้านความปลอดภัยได้แสดงความกังวลอย่างมากเกี่ยวกับการจัดการเหตุการณ์นี้ของ CodeRabbit ผู้ใช้หลายคนสังเกตว่าบริษัทเพิ่งเผยแพร่การตอบสนองหลังจากที่ผลการวิจัยของนักวิจัยแพร่ไวรัลบนโซเชียลมีเดีย แทนที่จะเปิดเผยปัญหาเชิงรุก ลูกค้าบางรายได้ยกเลิกการสมัครสมาชิกเนื่องจากการขาดความโปร่งใสนี้
ฉันยกเลิกการสมัครสมาชิกแบบเสียเงินของ coderabbit เพราะมันทำให้ฉันกังวลเสมอเมื่อโพสต์ต้องไวรัลบน HN ก่อนที่บริษัทจะยอมรับว่าเกิดปัญหาขึ้น
การตอบสนองของบริษัทยังถูกวิพากษ์วิจารณ์ว่าดูเหมือนจะลดความร้ายแรงของปัญหาและใช้ภาษาองค์กรที่สมาชิกชุมชนบางคนเชื่อว่าถูกสร้างโดยเครื่องมือ AI
ไทม์ไลน์:
- 24 มกราคม 2025: เปิดเผยช่องโหว่ให้กับ CodeRabbit
- 24 มกราคม 2025: CodeRabbit แก้ไขปัญหาภายในไม่กี่ชั่วโมง
- มกราคม 2025: นักวิจัยเผยแพร่ผลการวิจัยของพวกเขา
- มกราคม 2025: CodeRabbit เผยแพร่การตอบสนองของพวกเขาหลังจากได้รับแรงกดดันจากชุมชน
ผลกระทบด้านความปลอดภัยในวงกว้าง
เหตุการณ์นี้เน้นย้ำแนวโน้มที่น่ากังวลหลายประการในการพัฒนาซอฟต์แวร์สมัยใหม่ ช่องโหว่นี้เปิดเผยปัญหาพื้นฐานเกี่ยวกับวิธีที่เครื่องมือของบุคคลที่สามจัดการข้อมูลรับรองที่สำคัญและรันโค้ดที่ไม่น่าเชื่อถือ ผู้เชี่ยวชาญด้านความปลอดภัยในชุมชนได้ชี้ให้เห็นว่าการเก็บ GitHub private keys ในตัวแปรสภาพแวดล้อมขัดต่อคำแนะนำด้านความปลอดภัยของ GitHub เอง
การละเมิดนี้ยังทำให้เกิดคำถามเกี่ยวกับระบบสิทธิ์ของ GitHub ซึ่งหลายคนโต้แย้งว่าบังคับให้แอปพลิเคชันของบุคคลที่สามต้องขอสิทธิ์การเข้าถึงที่กว้างเกินไป นักวิจารณ์แนะนำว่า GitHub ควรใช้การควบคุมสิทธิ์ที่ละเอียดมากขึ้นเพื่อป้องกันสถานการณ์ที่บริการเดียวที่ถูกบุกรุกสามารถส่งผลกระทบต่อ repositories หลายล้านแห่ง
![]() |
---|
แผนภาพลำดับที่แสดงการไหลของการสื่อสารในซอฟต์แวร์ มีความเกี่ยวข้องกับการทำความเข้าใจผลกระทบด้านความปลอดภัยในเครื่องมือของบุคคลที่สาม |
การตอบสนองและการแก้ไข
CEO ของ CodeRabbit ตอบสนองว่าช่องโหว่ได้รับการแก้ไขภายในไม่กี่ชั่วโมงหลังจากการเปิดเผย และอ้างว่าไม่มีข้อมูลลูกค้าได้รับผลกระทบ อย่างไรก็ตาม สมาชิกชุมชนได้ตั้งคำถามว่าบริษัทมั่นใจได้อย่างไรในเรื่องนี้ เนื่องจากผู้ร้ายอาจค้นพบและใช้ประโยชน์จากช่องโหว่นี้ก่อนที่นักวิจัยจะรายงาน
บริษัทได้ใช้ sandboxing ที่ครอบคลุมสำหรับการรันโค้ดทั้งหมดและย้ายข้อมูลลับของพวกเขาไปยังระบบ key vault บนคลาวด์ พวกเขายังเผยแพร่บล็อกโพสต์ทางเทคนิคที่รายละเอียดมาตรการความปลอดภัยใหม่ แม้ว่าบางคนจะมองว่านี่เป็นความพยายามที่จะเปลี่ยนเหตุการณ์นี้ให้เป็นโอกาสทางการตลาด
เหตุการณ์นี้เป็นการเตือนใจอย่างชัดเจนถึงความเสี่ยงที่เกี่ยวข้องกับการให้สิทธิ์อย่างกว้างขวางกับเครื่องมือพัฒนาของบุคคลที่สาม และความสำคัญของการแยกความปลอดภัยที่เหมาะสมเมื่อรันโค้ดที่ไม่น่าเชื่อถือ
อ้างอิง: How we exploited CodeRabbit - from a simple fix to ACE and write access on 1M repositories