CVE-2026-7141
ŚrednieCVSS 5.6Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 21 - wyżej niż 21% wszystkich znanych CVE
Streszczenie
Podatność znaleziona w vLLM do wersji 0.19.0. Dotyczy funkcji has_mamba_layers w pliku vllm/v1/kv_cache_interface.py komponentu KV Block Handler. Manipulacja prowadzi do użycia niezainicjalizowanego zasobu. Atak może być przeprowadzony zdalnie, ale ma wysoką złożoność i jest trudny do wykorzystania. Exploit został opublikowany, ale istnienie podatności jest kwestionowane. Proponowana poprawka nie rozwiązała problemu. Strona trzecia wyjaśnia, że rozbieżność może wynikać z normalnego zachowania vLLM, gdzie serwer grupuje równoczesne żądania, co prowadzi do różnych kształtów wejścia. Istnieje zmienna środowiskowa VLLM_BATCH_INVARIANT=1 dla użytkowników pragnących deterministycznego wyniku przy temperaturze 0.0.
Ocena ryzyka
Potencjalne ryzyko nieprawidłowego działania lub awarii systemu, ale ze względu na wysoką złożoność ataku i kwestionowaną istotność, ryzyko jest ograniczone.
Rekomendacja
Zaleca się monitorowanie dyskusji i przyszłych poprawek vLLM, a także rozważenie ustawienia zmiennej środowiskowej VLLM_BATCH_INVARIANT=1, jeśli wymagana jest deterministyczność wyników.
Inne podatności w vLLM
Zobacz wszystkie- CVE-2026-73558Średnie
W vLLM przed wersją 0.27.0 występuje przepełnienie liczby całkowitej w wyrażeniu blockIdx.x * 2 * d w activation_kernels.cu, co może spowodować, że kernel act_and_mul_kernel zużyje dane wejściowe innego użytkownika w tej samej partii, umożliwiając żądaniu przetwarzanemu w tej samej partii wnioskowania otrzymanie częściowej lub pełnej kopii wyniku wnioskowania innego użytkownika. Problem naprawiono w wersji 0.27.0.
- 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-37237Wysokie
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.
- CVE-2026-78684Średnie
vLLM przed wersją 0.27.0 nieprawidłowo klasyfikuje DeepStream jako backend GPU i pomija egzekwowanie limitów pikseli w ścieżce dekodowania. Nieuwierzytelnieni atakujący mogą aktywować DeepStream w czasie żądania, inicjalizując procesowy pulę GPU do dekodowania i przesyłając wideo, które omija kontrolę zasobów, powodując częściową odmowę usługi dla równoczesnych żądań.
- CVE-2026-73560Średnie
vLLM przed wersją 0.26.0 w procesorze MiMoV2OmniMultiModalProcessor przekazuje kontrolowane przez atakującego ciągi obrazów i audio przez _fetch_image, requests.get i Image.open zamiast MediaConnector, omijając ochronę allowed_media_domains i allowed_local_media_path. Umożliwia to żądania po stronie serwera i odczyt dowolnych plików dostępnych dla procesu vLLM.
- CVE-2026-71486Średnie
vLLM to silnik wnioskowania i serwowania dla dużych modeli językowych. Przed wersją 0.26.0, endpointy /v1/completions/derender i /v1/chat/completions/derender akceptują obiekty GenerateResponse dostarczone przez wywołującego, których struktury generate_responses, choices, token_ids, prompt_logprobs, logprobs.content, top_logprobs i routed_experts są przetwarzane przez OnlineDerenderer i tokenizer.decode przed egzekwowaniem limitów max_model_len, max_tokens, max_num_seqs lub rozmiaru odpowiedzi, co pozwala uwierzytelnionemu klientowi API na zużycie nadmiernej ilości CPU i pamięci oraz generowanie zbyt dużych odpowiedzi. Problem naprawiono w wersji 0.26.0.
- CVE-2026-73559Średnie
vLLM to silnik wnioskowania i serwowania dla dużych modeli językowych. Od wersji 0.19.0 do 0.26.0 pole prompt w CompletionRequest w /v1/completions akceptuje nieograniczoną listę stringów lub list intów, a funkcje prompt_to_seq() i OnlineRenderer.preprocess_completion() rozwijają każdy element, co powoduje, że serwer tworzy osobny generator i slot odpowiedzi dla każdego promptu. Uwierzytelniony klient API może wyczerpać CPU, pamięć, zdolności planowania asynchronicznego, sloty żądań silnika i buforowanie odpowiedzi jednym żądaniem. Problem naprawiono w wersji 0.26.0.
- CVE-2026-73557Średnie
W vLLM od wersji 0.20.2rc0 do 0.26.0 funkcja safe_load_prompt_embeds w vllm/renderers/embed_utils.py używa torch.sparse.check_sparse_tensor_invariants, którego globalny stan zapisu, włączenia i przywracania może być wyścigowany przez równoczesne części prompt_embeds przesyłane do POST /v1/chat/completions przez AsyncMultiModalItemTracker.resolve_items, asyncio.gather i domyślny executor, co pozwala na dotarcie nieprawidłowego rzadkiego tensora do tensor.to_dense pomimo zabezpieczenia CVE-2025-62164, gdy włączona jest opcja enable_prompt_embeds. Problem naprawiono w wersji 0.26.0.
- CVE-2026-73556Średnie
W vLLM przed wersją 0.26.0 parametr structured_outputs.regex w vllm/v1/structured_output/backend_lm_format_enforcer.py jest przekazywany do lmformatenforcer.RegexParser bez compile_regex_with_timeout lub walidacji w validate_structured_output_request_lm_format_enforcer, co pozwala nieuwierzytelnionemu żądaniu /v1/completions przeciwko backendowi lm-format-enforcer na zużycie rdzenia CPU i zablokowanie ścieżki silnika strukturalnego wyjścia za pomocą katastrofalnego wyrażenia regularnego. Problem naprawiono w wersji 0.26.0.
Oryginalny opis (angielski, źródło NVD)
A vulnerability was found in vLLM up to 0.19.0. The affected element is the function has_mamba_layers of the file vllm/v1/kv_cache_interface.py of the component KV Block Handler. Performing a manipulation results in uninitialized resource. It is possible to initiate the attack remotely. The attack is considered to have high complexity. The exploitability is described as difficult. The exploit has been made public and could be used. The existence of this vulnerability is still disputed at present. The proposed patch did not fix the issue. A 3rd party explains: "The divergence could be explained by a benign and expected vLLM behavior where vLLM server could group concurrent requests together resulting in different input shapes based on varying request arrival time. The differences in grouped input shapes could call different kernels with could produce difference results due to rounding and differences in order of operations. There is an environment variable VLLM_BATCH_INVARIANT=1 for users that desire to have deterministic output with temperature 0.0."

