CVE-2026-37237
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 53 - wyżej niż 53% wszystkich znanych CVE
Streszczenie
vLLM do wersji 0.17.0 włącznie pozwala zdalnym atakującym na spowodowanie odmowy usługi (DoS) poprzez wyczerpanie pamięci. Funkcje AsyncMediaIO.fetch_audio i AsyncMediaIO.fetch_image w multimodal/inputs.py pobierają adresy URL mediów dostarczone przez użytkownika za pomocą aiohttp i wywołują r.read() bez narzucania maksymalnego rozmiaru odpowiedzi, co pozwala atakującemu wyczerpać pamięć serwera, podając URL do dowolnie dużego pliku.
Ocena ryzyka
Atakujący może doprowadzić do wyczerpania pamięci serwera, co skutkuje niedostępnością usługi dla wszystkich użytkowników. Może to prowadzić do przestojów i strat finansowych.
Rekomendacja
Zaktualizuj vLLM do wersji, która zawiera poprawkę, lub wdróż ograniczenia rozmiaru odpowiedzi dla pobieranych mediów. Dodatkowo rozważ ograniczenie dostępu do funkcji przetwarzających zewnętrzne URL-e.
Inne podatności w vLLM
Zobacz wszystkie- CVE-2026-48746Krytyczne
Podatność w vLLM w wersjach od 0.3.0 do 0.22.0 pozwala na obejście uwierzytelniania API OpenAI AuthenticationMiddleware. Atakujący może korzystać z API bez podania skonfigurowanego klucza VLLM_API_KEY lub --api-key.
- CVE-2026-22778Krytyczne
Podatność w vLLM od wersji 0.8.3 do 0.14.0 pozwala na wyciek adresu sterty poprzez wysłanie nieprawidłowego obrazu do endpointu multimodalnego. Wyciek ten redukuje skuteczność ASLR z 4 miliardów do około 8 prób, co ułatwia przeprowadzenie ataku.
- CVE-2026-115918Średnie
vLLM w wersjach od 0.16.0 do 0.32.0 pozwala uwierzytelnionemu użytkownikowi na umieszczenie kontrolowanego przez atakującego szablonu w chat_template_kwargs[chat_template], gdy nie skonfigurowano szablonu serwera. Funkcja ChatParams.get_apply_chat_template_kwargs() zachowuje tę wartość bez egzekwowania trust_request_chat_template, co pozwala obejść politykę zaufania i spowodować wyczerpanie CPU lub pamięci przez renderowanie Jinja.
- CVE-2026-115917Niskie
vLLM przed wersją 0.32.0 konfiguruje Starlette CORSMiddleware z allowed_origins ustawionym domyślnie na wildcard. Złośliwa strona internetowa może za pośrednictwem przeglądarki ofiary uzyskać dostęp do nieuwierzytelnionego serwera vLLM w localhost, sieci wewnętrznej lub VPN i wywoływać punkty końcowe, zużywając zasoby GPU i odczytując odpowiedzi.
- CVE-2026-115916Średnie
vLLM przed wersją 0.32.0 w pliku vllm/tokenizers/hf.py oblicza max_token_id z błędem off-by-one górnej granicy, pozwalając identyfikatorowi tokenu równego rozmiarowi słownika przejść walidację. Przy rozmiarze tensor-parallel równym jeden i słowniku będącym wielokrotnością 64, VocabParallelEmbedding.forward nie maskuje tej wartości przed użyciem w F.embedding, powodując asercję po stronie urządzenia CUDA i zakończenie silnika.
- CVE-2026-115915Wysokie
vLLM przed wersją 0.32.0 przekazuje bajty obrazów kontrolowane przez atakującego do biblioteki Pillow przez Image.open(BytesIO(data)) bez ograniczenia wyboru dekodera, a etykieta MIME nie ogranicza wybranego formatu. Ścieżki żądań obsługujące obrazy przez parse_image() i fetch_image() mogą skierować ładunek EPS do komponentów hosta, co przy podatnym Ghostscript (CVE-2024-29510) pozwala na wykonanie poleceń z uprawnieniami procesu vLLM, a przy Pillow 12.0.0–12.2.0 może wyczerpać wątki ładowania mediów.
- CVE-2026-115914Średnie
vLLM w wersjach od 0.11.1 do 0.32.0 w ścieżce obrazów DeepSeek-OCR, DeepSeek-OCR-2 i Unlimited-OCR pozwala zdalnemu klientowi z dostępem do API zgodnego z OpenAI przesłać prawidłowy obraz, którego znormalizowane piksele sumują się do zera, gdy obraz jest sam w partii enkodera. _parse_and_validate_image_input zwraca brak osadzenia, embed_multimodal propaguje tę wartość, a sanity_check_mm_encoder_outputs wyzwala krytyczną asercję, wyłączając silnik dla wszystkich użytkowników.
- CVE-2026-115913Średnie
vLLM to silnik wnioskowania i serwowania dużych modeli językowych. Przed wersją 0.32.0 enkoder audio Phi-4 w plikach phi4mm_audio.py i phi4mm_utils.py domyślnie używa eager attention, co pozwala zdalnemu klientowi przesłać jeden długi klip audio powodujący materializację pełnych macierzy uwagi i kwadratowe zużycie pamięci GPU, prowadząc do wyczerpania pamięci i zakończenia EngineCore dla wszystkich użytkowników.
- CVE-2026-115912Wysokie
W vLLM przed wersją 0.32.0 uwierzytelniony wywołujący może umieścić sfałszowane wartości adresu pamięci współdzielonej i monotonic_id w publicznym polu multimodal features.kwargs_data. W wdrożeniach scale-out z włączonym buforowaniem pamięci współdzielonej workery ufają tym wartościom i przekazują wybrane przez atakującego bajty do pickle.loads(), co pozwala na dowolne wykonanie kodu w Pythonie.
- CVE-2026-115911Średnie
vLLM to silnik wnioskowania i serwowania dużych modeli językowych. Od wersji 0.19.0 do 0.32.0 uwierzytelnieni klienci mogą dostarczyć szablon czatu, gdy nie skonfigurowano serwerowego --chat-template, albo złośliwe repozytorium modelu może dostarczyć szablon kompilowany i renderowany przez tokenizer.apply_chat_template() bez limitu czasu, rozmiaru wyjścia ani liczby iteracji. Renderowanie odbywa się w ThreadPoolExecutor z jednym workerem, więc nieskończone renderowanie może zablokować /v1/responses i innych użytkowników szablonów, a rozszerzające wyjście może wyczerpać pamięć serwera.
Oryginalny opis (angielski, źródło NVD)
vLLM up to and including 0.17.0 allows remote attackers to cause a Denial of Service via memory exhaustion. The AsyncMediaIO.fetch_audio and AsyncMediaIO.fetch_image functions in multimodal/inputs.py fetch user-supplied media URLs using aiohttp and call r.read() without enforcing a maximum response size, allowing an attacker to exhaust server memory by providing a URL to an arbitrarily large file.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

