무슨 일이 있었나
vLLM 0.28.0 이전 버전은 LlavaOnevision2 프로세서 로더 (_load_ov2_processor in llava_onevision2.py)의 RCE 취약점을 포함합니다. 함수는 Transformers의 get_class_from_dynamic_module을 호출하여 원격 프로세서 클래스를 로드하지만, 이 호출은 trust_remote_code 매개변수를 허용하지 않습니다 — 설정이 자동으로 무시되므로 processing_llava_onevision2.py에 임의 코드를 번들로 하는 악성 모델이 운영자가 명시적으로 trust_remote_code=False를 설정했을 때에도 vLLM 프로세스 권한으로 실행됩니다.
왜 중요한가
vLLM은 가장 광범위하게 배포된 오픈소스 LLM 추론 서버 중 하나입니다. 이 결함은 관리자가 악성 모델이 코드를 실행하는 것을 방지하기 위해 의존하는 주요 안전 제어 (trust_remote_code=False)를 무효화합니다. 즉, 외부 또는 사용자 제공 소스에서 모델을 로드하는 모든 환경은 구성과 관계없이 추론 컨테이너 내에서 전체 RCE에 노출됩니다.
공격 경로
공격자는 processing_llava_onevision2.py 파일에 임의 코드를 포함하는 악성 LlavaOnevision2 모델을 게시하거나 제공합니다. vLLM이 모델을 로드할 때 (trust_remote_code=False를 구성했을 때에도) 코드가 vLLM 프로세스 권한으로 실행됩니다.
영향받는 시스템
vLLM < 0.28.0
완화 방안
vLLM 0.28.0 이상으로 업그레이드합니다. 업그레이드할 때까지 모델 소스를 심사된 리포지토리로 제한하고, 신뢰할 수 없는 모델의 자동 로드를 피하고, vLLM을 최소 컨테이너 권한으로 실행합니다.