1 poin oleh GN⁺ 2025-08-20 | Belum ada komentar. | Bagikan ke WhatsApp
  • Tim riset keamanan berhasil melakukan remote code execution (RCE) di server produksi CodeRabbit serta membocorkan token API dan rahasia
  • Melalui PR yang memanfaatkan Rubocop, mereka dapat mencuri variabel lingkungan, serta mengakses PostgreSQL dan membaca/menulis ke 1 juta repositori
  • Dengan kebocoran private key GitHub App, dimungkinkan penyuntikan malware ke repositori publik maupun privat dalam skala besar, modifikasi source code, dan dampak nyata lainnya
  • Pihak CodeRabbit merespons segera dalam hitungan jam setelah laporan kerentanan dan memperkuat langkah-langkah keamanan
  • Saat menjalankan tool eksternal, ditekankan perlunya isolasi sandbox, prinsip hak akses minimum, dan pemblokiran jaringan untuk mencegah insiden keamanan

Pendahuluan

  • Pada Januari 2025, tim riset Kudelski Security mengungkap kerentanan keamanan serius di CodeRabbit
  • Pada CodeRabbit, yang luas digunakan sebagai tool otomatisasi review PR, ditemukan masalah besar berupa remote code execution (RCE), kebocoran variabel lingkungan dan informasi sensitif, serta perolehan hak Read/Write ke lebih dari 1 juta repositori
  • Tulisan ini memuat analisis rinci atas kerentanan yang dipublikasikan dalam presentasi Black Hat USA, dan sangat bernilai sebagai contoh nyata kerentanan pada tool review berbasis kode dan sistem integrasinya
  • Kerentanan yang dilaporkan ditambal dengan cepat segera setelah pelaporan

Gambaran umum CodeRabbit

  • CodeRabbit adalah aplikasi code review berbasis AI yang paling banyak dipasang di GitHub/GitLab Marketplace
  • Di dua platform tersebut, layanan ini telah mereview 1 juta repositori dan 5 juta pull request
  • Setiap kali pengguna membuat atau memperbarui PR, mesin AI menganalisis kode dan otomatis membuat komentar serta saran
  • Fitur seperti ringkasan kode, deteksi kerentanan keamanan, usulan perbaikan, dan pembuatan diagram memberi dampak besar pada produktivitas developer

Penggunaan CodeRabbit dan struktur perizinan

  • Paket Pro menyediakan fitur integrasi dengan tool linter dan SAST (analisis statis)
  • Saat mengautentikasi akun GitHub dan memasang aplikasi, pengguna memberikan izin baca/tulis ke repositori yang dipilih
  • Jika pengelolaan izin ini disalahgunakan, maka dapat memberikan dampak langsung pada kode di seluruh repositori tempat aplikasi dipasang

Eksekusi tool eksternal dan penemuan eksploit

  • Saat CodeRabbit mendeteksi perubahan kode dalam PR, ia otomatis menjalankan banyak tool analisis statis eksternal (misalnya Rubocop)
  • Rubocop dirancang agar dapat memuat file ekstensi Ruby eksternal (ext.rb dan sejenisnya) melalui file konfigurasi .rubocop.yml
    • Penyerang dapat menyisipkan kode berbahaya ke .rubocop.yml dan ext.rb, lalu mengirim PR untuk mendorong CodeRabbit mengeksekusi kode tersebut di server jarak jauh
  • Dengan teknik ini, kode yang dijalankan mengirim seluruh variabel lingkungan server ke server milik penyerang

Analisis isi kebocoran variabel lingkungan

  • Variabel lingkungan yang bocor mencakup API key, token, dan kata sandi dari berbagai layanan, seperti:
    • API key Anthropic/OpenAI, encryption salt/password, private key GitHub App, informasi koneksi PostgreSQL, dan lain-lain
  • Melalui RCE, dimungkinkan akses ke database, perubahan kode, dan kebocoran informasi internal layanan, sehingga dampak lanjutan sangat besar dan berdaya sebar tinggi
  • Penelusuran berbahaya lebih lanjut di server produksi sebenarnya mungkin dilakukan, namun demi mempertimbangkan operasional layanan, verifikasi dibatasi seminimal mungkin lalu dihentikan

Perolehan hak Read/Write ke 1 juta repositori

  • Dengan menggunakan GITHUB_APP_PEM_FILE (private key) yang terdapat di variabel lingkungan, autentikasi ke GitHub API menjadi memungkinkan
  • Terhadap seluruh repositori yang dapat diakses CodeRabbit (termasuk publik dan privat), pelaku dapat:
    • membaca/menulis source code, mengganti file rilis (serangan supply chain), mengubah riwayat git, dan menjalankan hak akses yang sangat kuat lainnya
  • Kode reproduksi (PoC) dipublikasikan dan membuktikan bahwa eksploitasi nyata memang memungkinkan

Ringkasan PoC

  • Dengan library seperti PyGitHub, private key yang bocor, App ID, dan data lain digunakan untuk menerbitkan access token repositori arbitrer
  • Melalui token ini, otomatisasi atas kloning repositori privat, perubahan file, commit baru, dan manipulasi file rilis menjadi mungkin

Potensi kompromi repositori internal/nonpublik CodeRabbit

  • Organisasi CodeRabbit sendiri juga memasang dan menggunakan layanannya, sehingga akses dan kloning repositori source code internal CodeRabbit juga dimungkinkan
  • Jika nama organisasinya diketahui, maka dengan melihat installation ID, akses ke daftar repositori terkait dapat segera dilakukan

Ringkasan dampak

  • Akses tidak sah ke repositori privat dan kebocoran data pribadi
  • Ancaman serangan supply chain seperti manipulasi source code, penyisipan malware/backdoor, dan sejenisnya
  • Potensi dirangkai dengan kerentanan tambahan seperti GitHub Actions
  • RCE langsung dapat menyebabkan penghancuran data, gangguan layanan, dan dampak berantai ke layanan lain

Konteks dan keterbatasan penilaian AI

  • Bahkan selama serangan berlangsung, PR itu sendiri tetap direview secara normal oleh CodeRabbit, dan meski meninggalkan komentar peringatan kerentanan, ia tetap gagal mengidentifikasi sintaks berbahaya sebagai ancaman nyata
  • Ini menunjukkan bahwa tool review kode AI belum tentu mampu memahami konteks situasi risiko yang sebenarnya

Tanggapan dan rekomendasi

  • CodeRabbit menonaktifkan Rubocop, mengganti rahasia, dan melakukan audit sistem dalam hitungan jam setelah laporan kerentanan
  • Masalah terjadi pada tool (Rubocop) yang tidak memakai sandbox, dan setelah penanganan, sistem diperbaiki agar seluruh tool eksternal dijalankan dalam lingkungan terisolasi
  • Untuk memperkuat keamanan, ditekankan perlunya desain defensif seperti meminimalkan variabel lingkungan pada lingkungan eksekusi tool eksternal, membatasi IP untuk akses jaringan, dan memblokir akses internet

Pengungkapan yang bertanggung jawab dan kesimpulan

  • Pada Januari 2025, setelah pelaporan, respons dan tindakan penanganan dilakukan dengan cepat
  • Meski hanya berhenti pada PoC, dipastikan bahwa penyerang jahat dapat dengan mudah menyalahgunakannya untuk memilih repositori bernilai tinggi, menjalankan ransomware skala besar, atau melancarkan serangan supply chain yang destruktif
  • Pentingnya penerapan sandbox dan prinsip hak akses minimum kembali ditegaskan saat mengintegrasikan tool analisis eksternal dan layanan otomatisasi berbasis AI

Belum ada komentar.

Belum ada komentar.