Kerentanan  ·  2026-05-28

CVE-2026-48710 'BadHost': Unauthenticated Auth Bypass di Starlette Mengekspos Infrastruktur vLLM, LiteLLM, FastAPI, dan MCP Server

KerentananHigh dampakGlobalCVE-2026-48710
Starlette (framework ASGI yang mendasari FastAPI, dan secara transitif vLLM, LiteLLM, Text Generation Inference, MCP server, dan sebagian besar framework agen AI berbasis Python) merekonstruksi URL permintaan dengan menggabungkan header HTTP Host dengan path permintaan tanpa memvalidasi nilai Host terhadap batasan karakter RFC 9112. Dengan menyuntikkan karakter URI-khusus (?, /, atau #) ke dalam header Host, penyerang menyebabkan request.url.path menyimpang dari path rute ASGI aktual, memungkinkan middleware keamanan berbasis path dilewati sepenuhnya tanpa kredensial apa pun. Satu perintah curl dengan 'Host: foo?' sudah cukup untuk mengembalikan 200 OK pada rute yang dengan benar mengembalikan 403 dalam kondisi normal. Skor CVSS resmi adalah 6.5 (Sedang), tetapi peneliti keamanan dari X41 D-Sec dan OSTIF secara terbuka berpendapat ini meremehkan tingkat keparahan dunia nyata mengingat penetrasi Starlette di seluruh stack infrastruktur AI.
Jarak jauh, tidak terauthentikasi. Penyerang mengirimkan permintaan HTTP dengan header Host yang salah format (misalnya, 'Host: legitimate-host.com?') ke endpoint apa pun yang didukung Starlette. Server ASGI merutekan permintaan secara normal; middleware Starlette mengevaluasi path URL yang diracuni dan diparsakan ulang serta gagal mencocokkan pola rute yang dilindungi, memungkinkan permintaan melewati handler. Socket TCP mentah atau alat yang memungkinkan header Host khusus diperlukan (klien HTTP standar menormalisasi header).
Versi Starlette 0.8.3 hingga 1.0.0 (semua versi sebelum patch). Downline: FastAPI (semua versi menggunakan middleware Starlette untuk auth berbasis path), server inferensi vLLM, gateway proxy LiteLLM, Text Generation Inference, shim ASGI kompatibel OpenAI, implementasi MCP server dibangun di FastAPI/Starlette, dan harness agen AI, dashboard, serta registri model menggunakan kontrol akses berbasis path. Deployment di belakang Cloudflare atau AWS ALB menerima mitigasi parsial karena proxy tersebut menolak header Host yang salah format secara default.
1. Upgrade ke Starlette 1.0.1 atau lebih baru di semua dependensi langsung dan transitif — bangun kembali semua kontainer dan instalasi yang disertakan setelah upgrade, karena update paket in-place meninggalkan salinan yang disertakan lebih lama tetap aktif. 2. Ganti penggunaan request.url atau request.url.path dalam middleware keamanan dengan request.scope['path'], yang mengembalikan path wire ASGI mentah yang tidak terpengaruh oleh konten header Host. 3. Deploy reverse proxy yang kompatibel HTTP/1.1 (Nginx, Apache httpd, Cloudflare) di depan layanan ASGI apa pun yang terbuka secara langsung. X41 D-Sec telah menerbitkan aturan Semgrep gratis, kueri CodeQL, dan pemindai jarak jauh di badhost.org untuk mendeteksi instalasi yang rentan.
Sumber
BadHost.org — CVE-2026-48710 Official Disclosure Site (X41 D-Sec / OSTIF)OSTIF — Disclosing the BadHost Vulnerability in StarletteMLQ.AI — Critical BadHost Flaw in Starlette Exposes Millions of AI Agent DeploymentsCVE Record — CVE-2026-48710 (cve.org)BadHost Advisory (badhost.org / Secwest)Ars Technica — Millions of AI agents imperiled by critical vulnerability
Lihat di umpan langsung Jelajahi temuan keamanan dan tata kelola AI terkait — diperbarui setiap pagi.
Buka umpan →