Pelanggaran Keamanan CodeRabbit Mengekspos 1 Juta Repositori GitHub pada Potensi Serangan

Tim Komunitas BigGo
Pelanggaran Keamanan CodeRabbit Mengekspos 1 Juta Repositori GitHub pada Potensi Serangan

Sebuah kerentanan keamanan besar di CodeRabbit, sebuah alat tinjauan kode bertenaga AI, dapat memungkinkan penyerang untuk mendapatkan akses tulis ke lebih dari 1 juta repositori GitHub. Pelanggaran ini ditemukan oleh peneliti keamanan dari Kudelski Security pada Januari 2025, yang menemukan bahwa alat tersebut menjalankan kode yang dikirimkan pengguna tanpa isolasi yang tepat, sehingga mengekspos kredensial autentikasi kritis dalam prosesnya.

CodeRabbit adalah layanan populer yang menggunakan model bahasa besar untuk menganalisis perubahan kode dan memberikan umpan balik keamanan. Alat ini memerlukan izin GitHub yang ekstensif untuk berfungsi, termasuk akses tulis ke repositori, yang membuat kerentanan ini sangat berbahaya.

Izin GitHub yang Diperlukan CodeRabbit :

  • Akses baca ke konten repositori
  • Akses tulis ke konten repositori
  • Akses ke pull request dan issues
  • Kemampuan untuk membuat dan memodifikasi branch
  • Akses ke metadata dan pengaturan repositori
Antarmuka login CodeRabbit tempat pengguna dapat mengakses alat tinjauan kode bertenaga AI
Antarmuka login CodeRabbit tempat pengguna dapat mengakses alat tinjauan kode bertenaga AI

Akar Penyebab: Eksekusi Kode yang Tidak Aman

Kerentanan ini berasal dari penggunaan Rubocop oleh CodeRabbit, sebuah alat analisis kode Ruby, yang berjalan di luar lingkungan sandbox aman mereka. Ketika memproses tinjauan kode, sistem akan menjalankan alat eksternal seperti Rubocop dengan akses ke variabel lingkungan sensitif yang berisi kunci API dan token autentikasi. Penyerang dapat mengeksploitasi ini dengan mengirimkan file konfigurasi Rubocop berbahaya yang akan menjalankan kode sewenang-wenang di server CodeRabbit.

Para peneliti mendemonstrasikan bagaimana mereka dapat mengekstrak kredensial sensitif termasuk kunci privat GitHub, token API untuk berbagai layanan, dan kunci akses AWS. Kredensial ini kemudian dapat digunakan untuk mengakses dan memodifikasi repositori apa pun yang telah memberikan izin kepada CodeRabbit.

Kredensial yang Terekspos:

  • Kunci privat GitHub dan token API
  • Kunci API AWS
  • Kunci API Anthropic dan OpenAI
  • Parameter koneksi basis data
  • Token sesi dan kredensial pengguna
Potongan kode dari aplikasi Python yang menyoroti notifikasi keamanan yang menangani potensi kerentanan
Potongan kode dari aplikasi Python yang menyoroti notifikasi keamanan yang menangani potensi kerentanan

Kekhawatiran Komunitas tentang Transparansi

Komunitas keamanan telah mengangkat kekhawatiran signifikan tentang penanganan insiden oleh CodeRabbit. Banyak pengguna mencatat bahwa perusahaan hanya menerbitkan respons mereka setelah temuan peneliti menjadi viral di platform media sosial, daripada secara proaktif mengungkapkan masalah tersebut. Beberapa pelanggan telah membatalkan langganan mereka karena kurangnya transparansi ini.

Saya membatalkan langganan berbayar coderabbit saya, karena selalu mengkhawatirkan saya ketika sebuah postingan harus menjadi viral di HN agar perusahaan bahkan mengakui bahwa masalah terjadi.

Respons perusahaan juga dikritik karena tampak meremehkan tingkat keparahan masalah dan menggunakan bahasa korporat yang beberapa anggota komunitas percaya dihasilkan oleh alat AI.

Kronologi:

  • 24 Januari 2025: Kerentanan dilaporkan kepada CodeRabbit
  • 24 Januari 2025: CodeRabbit memperbaiki masalah tersebut dalam hitungan jam
  • Januari 2025: Para peneliti menerbitkan temuan mereka
  • Januari 2025: CodeRabbit menerbitkan respons mereka setelah tekanan dari komunitas

Implikasi Keamanan yang Lebih Luas

Insiden ini menyoroti beberapa tren yang mengkhawatirkan dalam pengembangan perangkat lunak modern. Kerentanan tersebut mengekspos masalah fundamental dengan bagaimana alat pihak ketiga menangani kredensial sensitif dan menjalankan kode yang tidak dipercaya. Ahli keamanan di komunitas telah menunjukkan bahwa menyimpan kunci privat GitHub dalam variabel lingkungan melanggar rekomendasi keamanan GitHub sendiri.

Pelanggaran ini juga menimbulkan pertanyaan tentang sistem izin GitHub, yang banyak orang berpendapat memaksa aplikasi pihak ketiga untuk meminta hak akses yang terlalu luas. Kritikus menyarankan bahwa GitHub harus mengimplementasikan kontrol izin yang lebih granular untuk mencegah situasi di mana satu layanan yang dikompromikan dapat mempengaruhi jutaan repositori.

Diagram sekuens yang mengilustrasikan alur komunikasi dalam perangkat lunak, relevan untuk memahami implikasi keamanan dalam alat pihak ketiga
Diagram sekuens yang mengilustrasikan alur komunikasi dalam perangkat lunak, relevan untuk memahami implikasi keamanan dalam alat pihak ketiga

Respons dan Remediasi

CEO CodeRabbit merespons bahwa kerentanan diperbaiki dalam beberapa jam setelah pengungkapan dan mengklaim tidak ada data pelanggan yang terpengaruh. Namun, anggota komunitas mempertanyakan bagaimana perusahaan dapat yakin akan hal ini, mengingat bahwa aktor jahat dapat menemukan dan mengeksploitasi kerentanan sebelum peneliti melaporkannya.

Perusahaan sejak itu telah mengimplementasikan sandboxing komprehensif untuk semua eksekusi kode dan memindahkan rahasia mereka ke sistem vault kunci berbasis cloud. Mereka juga menerbitkan posting blog teknis yang merinci langkah-langkah keamanan baru mereka, meskipun beberapa orang melihat ini sebagai upaya untuk mengubah insiden menjadi peluang pemasaran.

Insiden ini berfungsi sebagai pengingat keras tentang risiko yang terlibat dalam memberikan izin ekstensif kepada alat pengembangan pihak ketiga, dan pentingnya isolasi keamanan yang tepat ketika menjalankan kode yang tidak dipercaya.

Referensi: How we exploited CodeRabbit - from a simple fix to ACE and write access on 1M repositories