🇰🇷 한글 설명
vLLM 0.19.0 이전 버전의 OpenAI 호환 API에서 n 파라미터의 상한값 검증 부재로 인한 DoS 취약점. 인증 없이 단일 HTTP 요청으로 Python asyncio 이벤트 루프를 차단하고 메모리 고갈로 서버 즉시 충돌.
💡 쉬운 설명
vLLM AI 서버의 요청 생성 개수 설정값(n)에 상한이 없어서, 매우 큰 숫자를 보내면 서버의 메모리가 폭발적으로 늘어나 서버가 멈춤. 누구나 인증 없이 이 공격을 수행할 수 있음.
🇺🇸 원문 (English)
vLLM is an inference and serving engine for large language models (LLMs). From 0.1.0 to before 0.19.0, a Denial of Service vulnerability exists in the vLLM OpenAI-compatible API server. Due to the lack of an upper bound validation on the n parameter in the ChatCompletionRequest and CompletionRequest Pydantic models, an unauthenticated attacker can send a single HTTP request with an astronomically large n value. This completely blocks the Python asyncio event loop and causes immediate Out-Of-Memory crashes by allocating millions of request object copies in the heap before the request even reaches the scheduling queue. This vulnerability is fixed in 0.19.0.
📍 영향받는 시스템
vLLM 0.1.0 ~ 0.18.x (0.19.0 이상 제외)
⚔️ 공격 벡터
OpenAI 호환 API의 ChatCompletionRequest/CompletionRequest에 매우 큰 n 파라미터 값을 담아 HTTP 요청 전송
🛡️ 대응 방법
vLLM을 0.19.0 이상으로 즉시 업그레이드
🔧 검증 코드
Version 값이 0.19.0 미만이면 취약, 0.19.0 이상이면 패치됨
pip show vllm | grep Version