vllm w wersji v0.6.2 zawiera krytyczną podatność w funkcji MessageQueue.dequeue(), która bez weryfikacji deserializuje dane przesłane przez sieć przy użyciu pickle.loads. Umożliwia to zdalnemu atakującemu wykonanie dowolnego kodu na serwerze bez jakiejkolwiek autoryzacji.
▸ Pokaż oryginał (EN)
vllm-project vllm version v0.6.2 contains a vulnerability in the MessageQueue.dequeue() API function. The function uses pickle.loads to parse received sockets directly, leading to a remote code execution vulnerability. An attacker can exploit this by sending a malicious payload to the MessageQueue, causing the victim's machine to execute arbitrary code.
Funkcja MessageQueue.dequeue() bezpośrednio przekazuje dane odebrane z gniazda sieciowego do funkcji pickle.loads, nie przeprowadzając żadnej walidacji ani weryfikacji źródła. Mechanizm pickle w Pythonie jest z natury niebezpieczny przy deserializacji niezaufanych danych, ponieważ pozwala na osadzenie w payloadzie arbitralnego kodu wykonywalnego. Atakujący może wysłać spreparowany payload do kolejki komunikatów MessageQueue, który zostanie automatycznie zdeserializowany i uruchomiony na maszynie ofiary.
Atakujący bez żadnego uwierzytelnienia może zdalnie wykonać dowolny kod na serwerze (RCE), co w praktyce oznacza pełne przejęcie kontroli nad systemem, kradzież danych, instalację backdoorów lub dalsze rozprzestrzenianie się w sieci (lateral movement).
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Szczegóły poprawki dostępne są pod adresem: https://huntr.com/bounties/00136195-11e0-4ad0-98d5-72db066e867f. Do czasu wdrożenia patcha należy ograniczyć dostęp sieciowy do API MessageQueue wyłącznie do zaufanych hostów za pomocą firewalla lub reguł sieciowych.
vllm-project vllm w wersji v0.6.2
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HVllm
APPVllm0.6.2
Powiązane podatności
Pominięcie uwierzytelnienia w vLLM — bypass klucza API OpenAI
vLLM: wyciek adresu sterty umożliwiający RCE przez endpoint multimodalny
vLLM: niezamierzone nasłuchiwanie TCPStore na wszystkich interfejsach sieciowych
RCE w vLLM poprzez deserializację pickle na niezabezpieczonych gniazdach ZeroMQ
RCE przez niebezpieczną deserializację w vLLM z Mooncake (ZMQ/TCP)