Apa yang terjadi
Jalur gambar vLLM mengirim byte yang dikendalikan penyerang ke Pillow tanpa membatasi pemilihan decoder, sehingga gambar yang tampak jinak dapat didekodekan oleh renderer eksternal (Ghostscript untuk EPS/PostScript) yang tidak dimaksudkan untuk dipanggil vLLM, menyebabkan eksekusi kode pada host dengan Ghostscript yang rentan, atau kelelahan worker pada Pillow 12.0.0–12.2.0. Perbaikan (diverifikasi di commit 710ac56e) menambahkan allowlist format gambar dan menolak payload PostScript. CVSS 8.1.
Mengapa penting
Ini adalah jalur RCE/gangguan yang dapat dipicu dari jarak jauh di mesin serving LLM inti: satu permintaan gambar yang dirancang cukup untuk mencapai hak akses proses atau melelahkan worker media. Serving multipart/multimodal terekspos secara default di vLLM, sehingga radius ledakan adalah setiap deployment yang menerima input gambar.
Vektor serangan
ImageMediaIO mengirim byte gambar yang dikendalikan penyerang ke Pillow melalui Image.open(BytesIO(data)) tanpa membatasi pemilihan decoder, dan label MIME tidak membatasi format yang dipilih. Jalur permintaan yang mendukung gambar (parse_image/fetch_image) karena itu dapat mengirim payload EPS/PostScript ke host; host dengan Ghostscript yang rentan mengeksekusi perintah dengan hak akses proses vLLM, sementara Pillow 12.0.0–12.2.0 memicu kelelahan worker pemuatan media.
Sistem yang terdampak
vLLM sebelum 0.32.0. RCE bergantung pada host yang memiliki Ghostscript yang diinstal Pillow dan terpengaruh CVE-2024-29510; kelelahan worker bergantung pada Pillow 12.0.0–12.2.0 (CVE-2026-59203).
Mitigasi
Tingkatkan ke vLLM 0.32.0 atau lebih baru, yang menambahkan allowlist format gambar (tidak termasuk EPS/WMF/BUFR/GRIB/HDF5/MPEG) sehingga byte PostScript tidak pernah mencapai renderer eksternal; juga pastikan Pillow dan Ghostscript di host GPU telah dipatch.