LiteLLM 1.107.0 diracuni, incar kunci API AI

LiteLLM, alat gateway model bahasa besar, terkena serangan peracunan rantai pasok pada 21 Oktober. Firma keamanan cloud Wiz mengungkapkan bahwa LiteLLM 1.107.0 yang telah dimanipulasi tayang di PyPI pada hari itu, dan image di GHCR serta Docker Hub dengan tag v1.107.0, latest, main-latest, dan main-stable juga disusupi program pencuri yang sama. Versi aman terbaru yang disebutkan pihak resmi adalah v1.106.2.

LiteLLM dikembangkan oleh BerriAI. Pola pakai yang umum adalah memasang satu lapisan proxy di dalam perusahaan untuk meneruskan permintaan lewat antarmuka terpadu ke ratusan layanan model seperti OpenAI, Anthropic, dan Bedrock. Di balik proxy itu tersimpan kunci API tiap vendor, dan inilah yang menjadi sasaran serangan kali ini.

Begitu terpasang, langsung mencuri

Paket berbahaya itu menaruh tiga berkas di direktori root site-packages: cook.pth, cook.py, dan sitecustomize.py. Dua berkas pertama memanfaatkan mekanisme .pth milik Python sehingga dieksekusi setiap kali interpreter dijalankan, tanpa perlu kode aplikasi meng-import LiteLLM.

Program pencuri ini bernama internal privcollect, terdiri dari 16 modul, dengan target meliputi:

  • Kredensial browser dan cookie dari Chrome, Firefox, Edge, dan Safari
  • Kredensial cloud AWS, GCP, dan Azure
  • Kunci API vendor AI seperti OpenAI, Anthropic, dan Cohere
  • Kunci privat SSH dan GPG serta riwayat shell
  • Kredensial vendor hulu yang diambil langsung dari database PostgreSQL milik LiteLLM Proxy

Data lebih dulu dienkripsi dengan AES-256-CBC, lalu kuncinya dibungkus dengan RSA-4096 dan dikirim lewat HTTP POST ke domain tiruan www.litellm[.]dev yang didaftarkan penyerang. sitecustomize.py hanya berjalan di Linux dan macOS, dan mengambil alamat tahap kedua dari repositori "dead drop" di GitHub. Menurut Wiz, berkas ini selain nilai uji tidak pernah diisi apa pun, dan GitHub sudah menghapus repositori tersebut.

Menggelar linimasa

Berdasarkan waktu UTC yang dipublikasikan Wiz, berikut perkiraan jendela waktu tiap tahap:

TahapWaktu (UTC)Durasi
Repositori tiruan menerima 10 commit08:56–10:46Sekitar 1 jam 50 menit
Versi berbahaya tayang di PyPI11:39–13:20Sekitar 1 jam 41 menit
Tag Docker yang dimanipulasi tayangDiturunkan sekitar 13:53Sekitar 2 jam 14 menit sejak tayang di PyPI
Penyerang memverifikasi kredensial AWS16:20–17:01Sekitar 4,5 jam setelah eksfiltrasi

Satu jam lebih di PyPI mungkin tampak singkat, tetapi tag seperti latest ditarik otomatis oleh banyak pipeline CI dan deployment Kubernetes, sehingga cakupan paparan terutama bergantung pada berapa banyak lingkungan yang membangun ulang image dalam rentang itu. Wiz tidak memberikan angka unduhan, dan jumlah organisasi yang terdampak saat ini belum dapat diverifikasi.

Setelah mendapat kredensial, penyerang memakai peran instans AWS pada runner CI dan node Kubernetes yang sudah dibobol untuk memanggil antarmuka seperti sts:GetCallerIdentity dan bedrock:ListFoundationModels. Wiz menilai ini sejalan dengan pola LLMjacking, yakni membajak akun cloud orang lain untuk memakai model bahasa besar secara gratis; di sebagian lingkungan, penyerang juga mengenumerasi IAM sebagai pengintaian rutin.

Pintu masuk diduga token GitHub

Sepuluh commit yang didorong penyerang mendarat di repositori tiruan Berri-AI/litellm. Sembilan commit pertama memiliki tanda tangan GitHub, sedangkan yang terakhir tidak bertanda tangan dan alamat emailnya berganti. Pernyataan pihak BerriAI:

"malicious actions were taken through three engineers' GitHub accounts"
(Tindakan berbahaya dilakukan melalui akun GitHub tiga insinyur.)

LiteLLM menduga token OAuth GitHub CLI tersebut bocor dari sebuah deployment internal yang terekspos ke internet publik, mungkin terkait kerentanan yang baru ditambal; Wiz menulis dengan tegas bahwa hal ini belum terbukti. BerriAI menyatakan semua token yang terlibat telah dicabut. Tim yang memakai 1.107.0 atau menarik image di atas pada rentang waktu tersebut perlu merotasi semua kredensial cloud, kunci model, dan kunci privat SSH yang dapat dibaca di mesin itu.

Sumber: blog riset Wiz, CocoLoop, pengumuman Wiz Threat Intelligence Center, pernyataan resmi BerriAI; kami memeriksa versi dan tag image yang terdampak, nama berkas berbahaya, serta waktu UTC tiap tahap.