Podatność w silniku wnioskowania vLLM (wersje 0.3.0–0.21.x) umożliwia ominięcie mechanizmu uwierzytelnienia OpenAI API AuthenticationMiddleware. Atakujący może korzystać z API bez podania skonfigurowanego klucza VLLM_API_KEY lub parametru --api-key.
▸ Pokaż oryginał (EN)
vLLM is an inference and serving engine for large language models (LLMs). From 0.3.0 until 0.22.0, a vulnerability in ASGI web servers and starlette's trust on those web servers enables an authentication bypass of the OpenAI API AuthenticationMiddleware. It allows to use the API without providing the configured VLLM_API_KEY or --api-key. This vulnerability is fixed in 0.22.0.
Luka wynika z nieprawidłowej obsługi żądań HTTP przez serwery ASGI w połączeniu z błędnym zaufaniem frameworku Starlette do tych serwerów (CWE-444: HTTP Request/Response Smuggling, CWE-501: Trust Boundary Violation). Mechanizm AuthenticationMiddleware odpowiedzialny za weryfikację klucza API może zostać obejśty poprzez spreparowane żądanie sieciowe. W efekcie middleware nie wymusza poprawnej weryfikacji tożsamości, zezwalając na nieautoryzowany dostęp do chronionych zasobów API.
Atakujący uzyskuje nieautoryzowany dostęp do API serwera vLLM — może odczytywać dane (C:H) oraz potencjalnie powodować niedostępność usługi (A:H), bez konieczności posiadania ważnego klucza API.
Należy zaktualizować vLLM do wersji 0.22.0 lub nowszej. Dostępne są również errata Red Hat: RHSA-2026:30088 oraz RHSA-2026:30089. Do czasu aktualizacji zaleca się ograniczenie dostępu sieciowego do endpointów API vLLM za pomocą firewall lub reverse proxy z własną warstwą uwierzytelnienia.
vLLM w wersjach od 0.3.0 do 0.21.x (podatność naprawiona w wersji 0.22.0)
Podatność odkryta i opisana przez firmę X41 D-Sec GmbH (advisory x41-2026-002-starlette). Problem dotyczy także samego frameworku Starlette w kontekście serwerów ASGI.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:HVllm
APPVllm0.3.0 – 0.22.0 (bez)
Powiązane podatności
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 MessageQueue.dequeue()
RCE przez niebezpieczną deserializację w vLLM z Mooncake (ZMQ/TCP)