무슨 일이 있었나
vLLM의 disaggregated prefill/decode 서빙 아키텍처는 거부된 요청에 대한 decode 측 메타데이터를 해제하지 않으므로, 인증되지 않은 클라이언트에서 max_tokens=0 요청의 스트림이 워커 메모리를 소진하고 재시작을 강제할 수 있습니다.
왜 중요한가
vLLM은 가장 널리 배포된 오픈소스 LLM 추론 엔진 중 하나입니다. 일반적인 프로덕션 스케일링 패턴(disaggregated 서빙)에 대한 인증되지 않은 원격 DoS는 인증 없이 트리거될 수 있으며 이에 의존하는 모든 애플리케이션의 추론 용량을 중단시킬 수 있습니다.
공격 경로
원격 공격자는 max_tokens=0으로 요청을 제출하며, 이는 거부되지만 decode 측 메타데이터가 정리되지 않아 바인딩되지 않은 누적이 발생하여 워커가 재시작될 때까지 decode-worker 메모리를 소진합니다. 이는 추론 서비스에 대한 거부 서비스입니다.
영향받는 시스템
vLLM through 0.29.0 (disaggregated prefill/decode 배포)
완화 방안
프로젝트의 GitHub 보안 추적 기관에 따라 이 문제를 해결하는 vLLM 패치로 업그레이드하고, 그 사이에 disaggregated 배포에서 decode-worker 메모리를 모니터링합니다.