Apa yang terjadi
Perlindungan jumlah frame VideoMediaIO.load_base64 milik vLLM dapat dilewati dengan menimpa VideoMediaIO.num_frames melalui media_io_kwargs.video pada level request. Menyetel num_frames ke -1 memilih cabang tak terbatas, yang membagi dan mendekode setiap frame, sehingga video/jpeg inline yang besar dapat membuat frontend API mengalokasikan array frame multi-gigabyte sebelum validasi selanjutnya menolaknya (CWE-400, CVSS 7.5).
Mengapa penting
Konsumsi sumber daya terjadi di frontend API sebelum validasi engine, sehingga satu request chat dapat menghabiskan memori dan CPU yang berlebihan serta menyebabkan proses serving crash atau mati karena OOM pada deployment multimodal yang mendukung video.
Vektor serangan
Kirim video/jpeg inline besar dengan media_io_kwargs.video.num_frames = -1 untuk memaksa dekode setiap frame.
Sistem yang terdampak
vLLM >= 0.18.0, < 0.31.0 (jalur MediaIO video/jpeg).
Mitigasi
Tingkatkan ke vLLM 0.31.0 (PR #58830 menolak media_io_kwargs per request secara default; aktifkan dengan --trust-request-mm-kwargs hanya untuk klien tepercaya).