기술 설명
vLLM 버전 0.8.0 이상은 VideoMediaIO.load_base64() 메서드의 메모리 부족 서비스 거부 공격에 취약합니다. video/jpeg 데이터 URL을 처리할 때, 이 메서드는 base64 데이터 문자열을 쉼표로 분할하여 JPEG 프레임을 추출하되 프레임 개수 제한을 강제하지 않습니다. 공격자는 수천 개의 쉼표로 구분된 base64 JPEG 프레임을 포함하는 단일 API 요청을 작성할 수 있으며, 이로 인해 서버가 모든 프레임을 메모리에 디코딩할 때까지 작동하다가 충돌합니다. 이 취약점은 인증되지 않은 OpenAI 호환 채팅 완성 API 엔드포인트를 통해 접근 가능합니다.
공격 경로
vLLM /v1/chat/completions 엔드포인트에 대한 단일 인증되지 않은 HTTP 요청, 수천 개의 쉼표로 구분된 base64로 인코딩된 JPEG 프레임을 포함하는 crafted video/jpeg 데이터 URL 사용. API가 인증 계층 없이 노출되어 있는 경우 인증이 필요하지 않습니다(자체 호스팅 배포에서 일반적임).
영향받는 시스템
vLLM 0.8.0 및 공개 일자까지 모든 이후 버전. vLLM은 가장 광범위하게 배포된 오픈소스 LLM 추론 서버 중 하나이며, 엔터프라이즈 및 클라우드 환경에서 Llama, Mistral, Qwen 등의 모델을 호스팅하는 데 사용됩니다.
완화 방안
vLLM 리포지토리의 커밋 58ee614에서 패치를 적용하십시오. 즉시 패치가 불가능한 경우: vLLM 추론 엔드포인트를 인증된 API 게이트웨이 뒤에 배치하고, 비디오 데이터 URL이 vLLM 프로세스에 도달하기 전에 요청 크기 제한 및 입력 검증을 적용하며, OOM 모니터링을 활성화하여 공격 시도를 탐지하십시오.