ช่องโหว่ความปลอดภัยของ CodeRabbit เปิดโอกาสให้ผู้โจมตีเข้าถึง GitHub Repositories กว่า 1 ล้านแห่ง

ทีมชุมชน BigGo
ช่องโหว่ความปลอดภัยของ CodeRabbit เปิดโอกาสให้ผู้โจมตีเข้าถึง GitHub Repositories กว่า 1 ล้านแห่ง

ช่องโหว่ความปลอดภัยร้ายแรงใน CodeRabbit ซึ่งเป็นเครื่องมือตรวจสอบโค้ดที่ขับเคลื่อนด้วย AI อาจทำให้ผู้โจมตีสามารถเข้าถึงและแก้ไข GitHub repositories กว่า 1 ล้านแห่งได้ ช่องโหว่นี้ถูกค้นพบโดยนักวิจัยด้านความปลอดภัยจาก Kudelski Security ในเดือนมกราคม 2025 ซึ่งพบว่าเครื่องมือดังกล่าวทำการรันโค้ดที่ผู้ใช้ส่งมาโดยไม่มีการแยกที่เหมาะสม ทำให้ข้อมูลรับรองการเข้าถึงที่สำคัญถูกเปิดเผย

CodeRabbit เป็นบริการยอดนิยมที่ใช้โมเดลภาษาขนาดใหญ่ในการวิเคราะห์การเปลี่ยนแปลงของโค้ดและให้คำแนะนำด้านความปลอดภัย เครื่องมือนี้ต้องการสิทธิ์การเข้าถึง GitHub อย่างกว้างขวางเพื่อให้ทำงานได้ รวมถึงสิทธิ์ในการแก้ไข repositories ซึ่งทำให้ช่องโหว่นี้อันตรายเป็นพิเศษ

สิทธิ์การเข้าถึง GitHub ที่ CodeRabbit ต้องการ:

  • สิทธิ์อ่านเนื้อหาในที่เก็บข้อมูล (repository)
  • สิทธิ์เขียนเนื้อหาในที่เก็บข้อมูล (repository)
  • การเข้าถึง pull requests และ issues
  • ความสามารถในการสร้างและแก้ไข branches
  • การเข้าถึง metadata และการตั้งค่าของที่เก็บข้อมูล (repository)
ส่วนติดต่อการเข้าสู่ระบบของ CodeRabbit ที่ผู้ใช้สามารถเข้าถึงเครื่องมือตรวจสอบโค้ดที่ขับเคลื่อนด้วย AI
ส่วนติดต่อการเข้าสู่ระบบของ 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 ที่เน้นการแจ้งเตือนด้านความปลอดภัยซึ่งจัดการกับช่องโหว่ที่อาจเกิดขึ้น
ส่วนของโค้ดจากแอปพลิเคชัน 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