vLLM — это механизм вывода и обслуживания для больших языковых моделей (LLM). Начиная с версии 0.7.0 до версии 0.19.0, метод VideoMediaIO.load_base64() в vllm/multimodal/media/video.py разделяет URL-адреса данных видео/jpeg запятой для извлечения отдельных кадров JPEG, но не устанавливает ограничение на количество кадров. Параметр num_frames (по умолчанию: 32), который применяется в пути кода load_bytes(), полностью игнорируется в пути base64 video/jpeg.
Злоумышленник может отправить один запрос API, содержащий тысячи кадров JPEG в кодировке Base64, разделенных запятыми, в результате чего сервер декодирует все кадры в память и аварийно завершает работу с OOM. Эта уязвимость исправлена в версии 0.19.0.
Показать оригинальное описание (EN)
vLLM is an inference and serving engine for large language models (LLMs). From 0.7.0 to before 0.19.0, the VideoMediaIO.load_base64() method at vllm/multimodal/media/video.py splits video/jpeg data URLs by comma to extract individual JPEG frames, but does not enforce a frame count limit. The num_frames parameter (default: 32), which is enforced by the load_bytes() code path, is completely bypassed in the video/jpeg base64 path. An attacker can send a single API request containing thousands of comma-separated base64-encoded JPEG frames, causing the server to decode all frames into memory and crash with OOM. This vulnerability is fixed in 0.19.0.
Характеристики атаки
Последствия
Строка CVSS v3.1