LiteLLM Kena Auth Bypass MCP (CVE-2026-59822) โ Gateway AI Ternyata Control Plane โ ๏ธ
Kalau di server kamu ada gateway LLM (LiteLLM, router OpenAI-compatible, proxy model), mending duduk dulu. Tim riset Wiz memindai
LiteLLM Kena Auth Bypass MCP (CVE-2026-59822) โ Gateway AI Ternyata Control Plane โ ๏ธ
Kalau di server kamu ada gateway LLM (LiteLLM, router OpenAI-compatible, proxy model), mending duduk dulu. Tim riset Wiz memindai ~3.074 instance LiteLLM yang kebuka di internet: 9,6% (294 instance) masih pakai master key contoh sk-1234 atau malah tanpa autentikasi sama sekali. Dari riset itu lahir CVE-2026-59822 โ auth bypass di endpoint MCP yang sekarang sudah masuk daftar CISA KEV dan terbukti dieksploitasi di alam liar.
โ ๏ธ Bug-nya sesimpel apa? Satu header ngawur
LiteLLM punya dua jalur autentikasi: API key LiteLLM sendiri, dan token OAuth2 yang diteruskan ke MCP server upstream. Masalahnya di fallback: waktu validasi key gagal dengan 401/403, handler-nya tidak membedakan "ini token OAuth2 sah untuk upstream" dengan "ini sampah". Ia menelan error-nya dan lanjut dengan objek auth kosong:
except HTTPException as e:
if e.status_code in (401, 403):
validated_user_api_key_auth = UserAPIKeyAuth() # bypass
Efeknya: satu request, header Authorization: Bearer a (satu huruf!), sesi MCP langsung dianggap terautentikasi.
POST /mcp/ HTTP/1.1
Authorization: Bearer a
{"jsonrpc":"2.0","method":"initialize","id":1,...}
-> HTTP 200 + header mcp-session-id
๐ Fakta singkat
| Item | Detail |
|---|---|
| CVE | CVE-2026-59822 (MCP auth bypass) |
| Versi terdampak | LiteLLM < 1.84.0 |
| Patch | 1.84.0 |
| Severity | High (CVSS 8.2 di OpenCVE/NVD, 8.8 di tracker lain) |
| Status | CISA KEV sejak 2 Sep 2026, deadline federal 16 Sep 2026 |
| Eksploitasi | Diamati honeypot Wiz sejak 7 Juli 2026 |
๐ฏ Kenapa ini lebih gede dari sekadar "LLMjacking"
Narasi lama: gateway kena โ orang pakai kuota model kamu, tagihan bengkak. Menyakitkan, tapi terbatas.
Realitanya tidak. Gateway LLM itu control plane: dia pegang API key semua provider, membaca semua prompt/response, menjalankan kode Python (custom guardrail), bisa proxy ke URL internal, dan menyambungkan model ke tools lewat MCP. Jadi bypass di /mcp/ = pintu ke semua yang tersambung: database, repo GitHub, filesystem, sampai aksi CI/CD.
Beberapa temuan lain dari riset yang sama:
- CVE-2026-59821 โ custom code guardrail bisa dieksekusi di proses proxy (patch:
1.82.0-stable). Wiz melihat kodenya jalan sebagai root di container uji. - Auth default/kosong โ 191 instance publik benar-benar tanpa auth, dan sebelum patch, instance tanpa master key menganggap pemanggil tak dikenal sebagai
PROXY_ADMIN. Kombinasi ini membuat RCE-nya praktis pre-auth. - Pass-through endpoint tanpa validasi URL โ admin bisa mengarahkannya ke metadata service AWS (IMDSv2) dan menarik kredensial cloud. Ini dianggap "fitur", tapi fatal kalau pintunya sudah bocor.
Ketiganya bukan satu rantai ajaib โ prerequisitenya beda. Tapi semuanya berakar dari hal yang sama: gateway diperlakukan seperti middleware biasa, padahal dia selevel control plane.
๐ Cek server sendiri, 5 menit
- Versi:
pip show litellm | grep -i versionatau cek tag image container. Di bawah 1.84.0 = kena. - Keterpaparan: cek apakah port proxy (default 4000) dan rute
/mcp/bisa diakses dari luar. - Tes negatif (paling penting): kirim request
initializeke/mcp/dengan token ngawur. Harus 401/403. Kalau 200 โ bolong. - Log: cari sesi MCP dengan bearer token yang tidak cocok dengan key manapun.
- Master key: pastikan bukan
sk-1234dan bukan key yang dipakai ulang di tempat lain.
๐ ๏ธ Yang harus dilakukan
- Upgrade ke โฅ 1.84.0, lalu jangan berhenti di versi minimum โ advisory LiteLLM terus bermunculan, pin image + verifikasi provenance.
- Belum bisa upgrade? Blok rute
/mcp/di reverse proxy/network layer, atau matikan integrasi MCP sementara. - Rotate: master key, key provider model, kredensial DB/OAuth yang bisa dijangkau tools MCP.
- Container jangan root, batasi egress (blok
169.254.169.254), kasih IAM minimum. - Audit tools MCP: kalau tidak dipakai, matikan. Kalau dipakai, scope sekecil mungkin.
๐ท Catatan dari kandang Chokdi
Kami juga menjalankan gateway model yang membagi trafik ke banyak provider, dan pelajaran dari kasus ini masuk checklist internal kami: service yang pegang kredensial + punya tools = control plane, bukan "cuma middleware". Rutinitas auditnya sederhana โ cek versi, tes auth negatif, dan pastikan endpoint admin/MCP tidak ikut terpublish gara-gara tunnel, docker -p, atau LoadBalancer yang lupa ditutup. Kebanyakan insiden bukan karena bug eksotis, tapi karena pintu yang tidak sengaja dibiarkan terbuka.
๐ฏ Kesimpulan
Satu bearer token ngawur, satu request, sesi MCP sah โ itu CVE-2026-59822. Kalau kamu jalanin LiteLLM di versi di bawah 1.84.0: upgrade hari ini, tutup /mcp/, rotate kredensial, dan jangan tunggu sampai CISA KEV yang ngasih tahu. Gateway kamu nyimpen kunci seluruh infrastruktur AI kamu โ perlakukan seperti itu.
Sumber: Wiz Research ("Breaking LiteLLM: From Auth Bypass to Cloud Compromise"), GitHub Advisory GHSA-7488-6r32-c95q, CISA KEV (Sep 2026), analisis Hive Security.
โ Chokdi ๐ท ยท Content Studio ยท 2026