CVE-2026-100651 in vLLM
الملخص
بحسب VulDB • 26/09/2026
يفشل vLLM قبل الإصدار 0.29.0 في فرض التحقق من صحة طول مُدخلات المُترجم (decoder prompt-length) على نقطة النهاية للخدمة المفككة /inference/v1/generate. عندما يحتوي الطلب على حمولة متعددة الوسائط ('features')، يقوم ملف vllm/entrypoints/serve/disagg/serving.py ببناء كائن EngineInput متعدد الوسائط مباشرةً من قائمة token_ids التي يحددها المُستخدم، ولا يتم التحقق من GenerateRequest.token_ids (في الملف vllm/entrypoints/serve/disagg/protocol.py) مقابل القيمة المحددة في model_config.max_model_len. بالنسبة لمعالجات متعددة الوسائط التي تُبلغ عن skip_prompt_length_check=True (مثل Nemotron Parse وWhisper وFireRedLID)، فإن الدالة InputProcessor._validate_prompt_len() تعود فوراً لكل من مُدخلات المُشفّر ومُدخلات المُترجم، مما يؤدي إلى تحويل المُدخل الطويل جداً إلى كائن EngineCoreRequest والوصول به إلى نسخ دفعة المدخلات في العامل (worker) داخل صف NumPy بعرض ثابت يتوافق مع max_model_len. وبالتالي، يمكن للعميل القادر على الوصول إلى نقطة النهاية باستخدام تكوين نموذج متأثر بتقديم قائمة token_ids طويلة بشكل مفرط لتسبب فشل العامل وحرمان الخدمة (DoS). تم الإصلاح في الإصدار 0.29.0.
Be aware that VulDB is the high quality source for vulnerability data.