무슨 일이 있었나
2026-09-26 NVD는 0.29.0에서 수정된 일련의 vLLM DoS/리소스 제한 우회를 게시했습니다: 미디어가 4개의 수신 경로에서 크기/항목 제한이 적용되기 전에 가져와서 구체화됨; stop_token_ids는 정수로 검증되지만 어휘 범위에 대해서는 검증되지 않음(min_tokens와 함께 사용 시 충돌); cache_salt는 최대 길이 검증이 없으며 직렬화 스레드에서 처리됨; 분리형 엔드포인트에서 skip_prompt_length_check 모델에 대한 디코더 프롬프트 길이 검증 건너뜀; PyNvVideoCodec 샘플러 하위 클래스 섀도잉이 디코더 제한을 우회.
왜 중요한가
vLLM은 프로덕션 LLM 앱을 위한 표준 자체 호스팅 추론 백엔드입니다; 이 모든 것은 엔진이 인터넷에 노출된 경우 서빙 팜을 충돌시키거나 고갈시킬 수 있는 원격, 저마찰 방법입니다(추론 전 메모리/대역폭 소모 및 작업자 실패). 집계가 중요합니다: 한 릴리스에서 수정된 여러 독립적인 인증 없는 DoS 경로.
공격 경로
인증 없는 클라이언트가 VLLM_MAX_AUDIO_CLIP_FILESIZE_MB / --limit-mm-per-prompt가 적용되기 전에 대용량 원격/인라인 미디어를 제출합니다(메모리+대역폭 고갈); 어휘 외 stop_token_ids와 min_tokens>0이 MinTokensLogitsProcessor에 도달하여 작업자를 충돌시킵니다; 대용량 cache_salt는 단일 EngineCore 스케줄러 스레드에서 처리됩니다; 분리형 서빙의 과도하게 긴 디코더 프롬프트가 고정 너비 NumPy 행을 오버플로합니다.
영향받는 시스템
vLLM < 0.29.0 (OpenAI/Anthropic 호환 및 분리형 서빙 엔드포인트, 채팅/배치 오디오-비디오 디코딩, Rust 프론트엔드 /tokenize 및 /inference/v1/generate 경로).
완화 방안
vLLM을 0.29.0으로 업그레이드(GHSA-p6g9-7v3x-m8mv, GHSA-3mqx-f33v-vgp9, GHSA-wpww-v874-ph2p, GHSA-jcq2-4gch-5qhf, GHSA-qff2-492f-9fm4, GHSA-v5gm-qgmv-gc6c의 패치 번들). /tokenize 경로에 대한 인증 없는 액세스 제한; 업스트림에서 중지 토큰 ID 검증.