Apa yang terjadi
Versi vLLM sebelum 0.28.0 berisi kerentanan RCE di pemuat prosesor LlavaOnevision2 (_load_ov2_processor di llava_onevision2.py). Fungsi memanggil get_class_from_dynamic_module Transformers untuk memuat kelas prosesor jarak jauh, tetapi panggilan ini tidak menerima parameter trust_remote_code — pengaturan secara diam-diam diabaikan, jadi model berbahaya yang membundel kode sewenang-wenang dalam processing_llava_onevision2.py dieksekusi dengan otoritas proses vLLM bahkan ketika operator secara eksplisit telah menetapkan trust_remote_code=False.
Mengapa penting
vLLM adalah salah satu server inferensi LLM open-source yang paling banyak digunakan. Cacat ini mengalahkan kontrol keamanan utama (trust_remote_code=False) yang diandalkan administrator untuk mencegah model berbahaya dari mengeksekusi kode, yang berarti setiap lingkungan yang memuat model dari sumber eksternal atau yang disuplai pengguna terbuka untuk RCE penuh di dalam kontainer inferensi terlepas dari konfigurasi.
Vektor serangan
Penyerang menerbitkan atau menyuplai model LlavaOnevision2 berbahaya yang berisi kode sewenang-wenang di file processing_llava_onevision2.py-nya; ketika vLLM memuat model (bahkan dengan trust_remote_code=False yang dikonfigurasi), kode dieksekusi dengan privilege proses vLLM.
Sistem yang terdampak
vLLM < 0.28.0
Mitigasi
Tingkatkan ke vLLM 0.28.0 atau lebih baru. Sampai ditingkatkan, batasi sumber model ke repositori yang divetting, hindari auto-loading model yang tidak dipercaya, dan jalankan vLLM dengan privilege kontainer minimal.