Apa yang terjadi
OpenAIServing milik vLLM menyalin header HTTP X-Request-Id apa adanya ke dalam request_id, dan P2pNcclConnector.parse_request_id mengekstrak host:port yang sewenang-wenang darinya melalui regex yang longgar tanpa allow-list, pemeriksaan skema, atau pemblokiran IP-literal. Pemanggil API dapat menyematkan alamat decode di header untuk memaksa worker prefill yang menjalankan konektor untuk terhubung ZMQ keluar ke host penyerang, berbagi unique_id communicator NCCL, lalu ncclSend KV-cache dari request yang ditargetkan ke penyerang.
Mengapa penting
Hanya dengan menggunakan header HTTP, pemanggil yang dapat menjangkau worker prefill (kunci API valid, atau tanpa kunci jika --api-key tidak disetel) dapat mengeksfiltrasi KV-cache lengkap dari setiap request yang diproses worker tersebut—teks prompt dan hidden state yang di-cache prefix—dan dapat memblokir worker pada host yang tidak responsif, sebuah vektor denial-of-service. CVE-2026-116176, CVSS 8.2, CWE-918.
Vektor serangan
Buat request /v1/completions atau /v1/chat/completions dengan X-Request-Id yang berisi host:port yang dikendalikan penyerang; worker prefill terhubung keluar dan membocorkan tensor KV-cache.
Sistem yang terdampak
vLLM >= 0.9.2, < 0.24.0 saat menjalankan P2pNcclConnector (membutuhkan --kv-transfer-config dengan P2pNcclConnector).
Mitigasi
Tingkatkan ke vLLM 0.24.0 (PR #44854 menghapus konektor yang terpengaruh); juga hapus/ganti X-Request-Id dengan UUID acak saat P2pNcclConnector aktif dan validasi remote_address konektor terhadap allow-list CIDR yang dikonfigurasi operator.