Kelemahan keselamatan utama dalam CodeRabbit, alat semakan kod berkuasa AI, boleh membenarkan penyerang mendapat akses tulis kepada lebih 1 juta repositori GitHub. Pelanggaran ini ditemui oleh penyelidik keselamatan dari Kudelski Security pada Januari 2025, yang mendapati bahawa alat tersebut melaksanakan kod yang diserahkan pengguna tanpa pengasingan yang betul, mendedahkan kelayakan pengesahan kritikal dalam proses tersebut.
CodeRabbit adalah perkhidmatan popular yang menggunakan model bahasa besar untuk menganalisis perubahan kod dan memberikan maklum balas keselamatan. Alat ini memerlukan kebenaran GitHub yang luas untuk berfungsi, termasuk akses tulis kepada repositori, yang menjadikan kelemahan ini amat berbahaya.
Kebenaran GitHub yang Diperlukan oleh CodeRabbit:
- Akses baca kepada kandungan repositori
- Akses tulis kepada kandungan repositori
- Akses kepada pull request dan isu
- Keupayaan untuk mencipta dan mengubah suai cawangan
- Akses kepada metadata dan tetapan repositori
![]() |
---|
Antara muka log masuk CodeRabbit di mana pengguna boleh mengakses alat semakan kod berkuasa AI |
Punca Utama: Pelaksanaan Kod Tidak Selamat
Kelemahan ini berpunca daripada penggunaan Rubocop oleh CodeRabbit, alat analisis kod Ruby, yang berjalan di luar persekitaran kotak pasir selamat mereka. Semasa memproses semakan kod, sistem akan melaksanakan alat luaran seperti Rubocop dengan akses kepada pembolehubah persekitaran sensitif yang mengandungi kunci API dan token pengesahan. Penyerang boleh mengeksploitasi ini dengan menyerahkan fail konfigurasi Rubocop berniat jahat yang akan melaksanakan kod sewenang-wenangnya pada pelayan CodeRabbit.
Para penyelidik menunjukkan bagaimana mereka boleh mengekstrak kelayakan sensitif termasuk kunci peribadi GitHub, token API untuk pelbagai perkhidmatan, dan kunci akses AWS. Kelayakan ini kemudiannya boleh digunakan untuk mengakses dan mengubah suai mana-mana repositori yang telah memberikan kebenaran kepada CodeRabbit.
Kelayakan yang Terdedah:
- Kunci peribadi GitHub dan token API
- Kunci API AWS
- Kunci API Anthropic dan OpenAI
- Parameter sambungan pangkalan data
- Token sesi dan kelayakan pengguna
![]() |
---|
Potongan kod daripada aplikasi Python yang menyerlahkan notifikasi keselamatan yang menangani potensi kelemahan |
Kebimbangan Komuniti Mengenai Ketelusan
Komuniti keselamatan telah membangkitkan kebimbangan yang ketara mengenai pengendalian insiden oleh CodeRabbit. Ramai pengguna menyatakan bahawa syarikat hanya menerbitkan respons mereka selepas penemuan penyelidik menjadi viral di platform media sosial, bukannya mendedahkan isu tersebut secara proaktif. Sesetengah pelanggan telah membatalkan langganan mereka kerana kekurangan ketelusan ini.
Saya membatalkan langganan berbayar coderabbit saya, kerana ia sentiasa membimbangkan saya apabila sesuatu siaran perlu menjadi viral di HN untuk syarikat mengakui bahawa isu telah berlaku.
Respons syarikat juga telah dikritik kerana kelihatan meremehkan keterukan isu dan menggunakan bahasa korporat yang dipercayai oleh sesetengah ahli komuniti telah dijana oleh alat AI.
Garis Masa:
- 24 Januari 2025: Kelemahan didedahkan kepada CodeRabbit
- 24 Januari 2025: CodeRabbit membetulkan isu tersebut dalam masa beberapa jam
- Januari 2025: Penyelidik menerbitkan penemuan mereka
- Januari 2025: CodeRabbit menerbitkan respons mereka selepas tekanan komuniti
Implikasi Keselamatan yang Lebih Luas
Insiden ini menyerlahkan beberapa trend yang membimbangkan dalam pembangunan perisian moden. Kelemahan ini mendedahkan masalah asas dengan cara alat pihak ketiga mengendalikan kelayakan sensitif dan melaksanakan kod yang tidak dipercayai. Pakar keselamatan dalam komuniti telah menunjukkan bahawa menyimpan kunci peribadi GitHub dalam pembolehubah persekitaran melanggar cadangan keselamatan GitHub sendiri.
Pelanggaran ini juga menimbulkan persoalan mengenai sistem kebenaran GitHub, yang ramai berpendapat memaksa aplikasi pihak ketiga untuk meminta hak akses yang terlalu luas. Pengkritik mencadangkan bahawa GitHub harus melaksanakan kawalan kebenaran yang lebih terperinci untuk mencegah situasi di mana satu perkhidmatan yang terjejas boleh menjejaskan berjuta-juta repositori.
![]() |
---|
Rajah urutan yang menggambarkan aliran komunikasi dalam perisian, relevan untuk memahami implikasi keselamatan dalam alat pihak ketiga |
Respons dan Pemulihan
Ketua Pegawai Eksekutif CodeRabbit menjawab bahawa kelemahan telah diperbaiki dalam beberapa jam selepas pendedahan dan mendakwa tiada data pelanggan terjejas. Walau bagaimanapun, ahli komuniti telah mempersoalkan bagaimana syarikat boleh memastikan perkara ini, memandangkan pelakon berniat jahat mungkin telah menemui dan mengeksploitasi kelemahan sebelum penyelidik melaporkannya.
Syarikat sejak itu telah melaksanakan kotak pasir komprehensif untuk semua pelaksanaan kod dan memindahkan rahsia mereka kepada sistem vault kunci berasaskan awan. Mereka juga menerbitkan siaran blog teknikal yang memperincikan langkah keselamatan baharu mereka, walaupun sesetengah pihak melihat ini sebagai percubaan untuk menjadikan insiden tersebut sebagai peluang pemasaran.
Insiden ini berfungsi sebagai peringatan keras mengenai risiko yang terlibat dalam memberikan kebenaran luas kepada alat pembangunan pihak ketiga, dan kepentingan pengasingan keselamatan yang betul semasa melaksanakan kod yang tidak dipercayai.
Rujukan: How we exploited CodeRabbit - from a simple fix to ACE and write access on 1M repositories