Apa yang terjadi
Sebelum vLLM 0.22.0, loader fungsi aktivasi menggunakan pemeriksaan keamanan berbasis assert untuk memvalidasi nama fungsi yang dimuat dari konfigurasi model. Pernyataan assert Python dihapus secara diam-diam ketika interpreter berjalan dalam mode yang dioptimalkan (python -O atau PYTHONOPTIMIZE=1). Penyerang tidak terautentikasi dapat menerbitkan model HuggingFace berbahaya dengan nama fungsi aktivasi yang dirancang; ketika vLLM memuat model di bawah mode yang dioptimalkan, pemeriksaan assert dilewati dan kode arbitrer dijalankan di server. CVSS 7.5 High.
Mengapa penting
Ini menciptakan kelas serangan novel: model publik yang terkontaminasi di HuggingFace Hub dapat secara diam-diam RCE server vLLM apa pun yang memuatnya — tanpa autentikasi atau akses jaringan langsung yang diperlukan. Penyerang dapat menargetkan pipeline MLOps yang secara otomatis menarik model baru atau model penyesuaian halus. Ini adalah serangan rantai pasokan model terhadap infrastruktur inferensi.
Vektor serangan
Penyerang menerbitkan model HuggingFace berbahaya dengan konfigurasi fungsi aktivasi yang dirancang; vLLM berjalan dengan PYTHONOPTIMIZE=1 memuatnya dan menjalankan kode penyerang tanpa autentikasi
Sistem yang terdampak
vLLM < 0.22.0 saat berjalan dengan pengoptimalan Python diaktifkan
Mitigasi
Tingkatkan ke vLLM 0.22.0. Hindari menjalankan vLLM dengan python -O atau PYTHONOPTIMIZE=1. Batasi sumber model ke registri terpercaya. Perbaikan: https://github.com/vllm-project/vllm/commit/b3c7ffcab82c2439726f8cb213800f6f38c023d3