Para peneliti menemukan bahwa perpustakaan Vanna AI memiliki kelemahan yang memungkinkan peretas menjalankan kode berbahaya dari jarak jauh. Kerentanan ini disebut sebagai injeksi prompt, yang memungkinkan eksekusi kode jarak jauh (RCE).
Apa Itu Vanna AI?
Vanna AI adalah perangkat lunak yang dapat menerjemahkan perintah bahasa alami menjadi kueri SQL. Kemudian, menggunakan perpustakaan grafis Python yang disebut Plotly, perangkat ini menyajikan hasil kueri tersebut dalam bentuk grafik visual. Vanna AI bisa terhubung dengan basis data melalui aplikasi seperti Jupyter Notebook dan digunakan dalam berbagai platform seperti Slackbot atau aplikasi web khusus.
Bagaimana Kerentanan Ini Ditemukan?
Peneliti dari JFrog dan Tong Liu, seorang mahasiswa PhD, menemukan kerentanan ini. Mereka melaporkannya melalui platform bug bounty Huntr. Kerentanan tersebut dilacak dengan kode CVE-2024-5565.
Bagaimana Kerentanan Ini Bekerja?
- Proses Kueri dan Visualisasi:
- Pengguna memberikan perintah yang kemudian dikirim ke model bahasa besar (LLM).
- LLM membuat kueri SQL berdasarkan perintah tersebut.
- Kueri SQL dikirim ke database.
- Hasilnya kemudian diproses oleh Plotly untuk membuat grafik.
- Poin Kelemahan:
- Plotly menghasilkan kode Python secara dinamis berdasarkan perintah pengguna.
- Kode ini dieksekusi untuk membuat grafik.
- Pengguna dapat menyisipkan kode berbahaya dalam perintah mereka sehingga kode berbahaya tersebut dijalankan saat Plotly membuat grafik.
Contoh Eksploitasi
Para peneliti dari JFrog menunjukkan bahwa mereka bisa memanipulasi proses ini untuk menampilkan daftar file di direktori mesin target. Ini membuktikan bahwa kode berbahaya bisa dijalankan di sistem target.
Tindakan Pengamanan
Vanna AI telah menerbitkan panduan untuk mencegah eksploitasi ini. Beberapa langkah yang direkomendasikan meliputi:
- Menggunakan Sandbox: Menjalankan kode di lingkungan sandbox untuk mencegah kode berbahaya merusak sistem utama.
- Memodifikasi Fungsi: Mengubah fungsi
vn.generate_plotly_codeagar tidak mengeksekusi kode arbitrer, melainkan mengembalikan hasil kueri dalam format default.
Rekomendasi untuk Pengembang
Peneliti JFrog menyarankan para pengembang yang bekerja dengan LLM untuk:
- Menggunakan sandbox pada lingkungan eksekusi.
- Menggunakan model yang bisa mendeteksi injeksi prompt.
- Memeriksa integritas keluaran untuk mencegah eksekusi kode berbahaya.
Kesimpulan
Kerentanan di Vanna AI adalah ancaman serius yang bisa dieksploitasi oleh peretas untuk mengambil alih sistem dari jarak jauh. Pengguna dan pengembang perlu segera menerapkan langkah-langkah pengamanan yang disarankan untuk melindungi sistem mereka dari potensi serangan ini.




