무슨 일이 있었나
vLLM 0.22.0 이전에 활성화 함수 로더는 assert 기반 보안 체크를 사용하여 모델 구성에서 로드된 함수 이름을 검증했습니다. Python의 assert 문은 인터프리터가 최적화 모드(python -O 또는 PYTHONOPTIMIZE=1)에서 실행될 때 자동으로 제거됩니다. 인증되지 않은 공격자는 조작된 활성화 함수 이름을 가진 악성 HuggingFace 모델을 게시할 수 있습니다. vLLM이 최적화 모드에서 모델을 로드할 때 assert 체크가 건너뛰어지고 임의의 코드가 서버에서 실행됩니다. CVSS 7.5 High.
왜 중요한가
이는 새로운 공격 클래스를 생성합니다: HuggingFace Hub의 오염된 공개 모델은 인증이나 직접 네트워크 접근 없이 모든 vLLM 서버를 자동으로 RCE할 수 있습니다. 공격자는 새로운 또는 미세 조정된 모델을 자동으로 가져오는 MLOps 파이프라인을 대상으로 할 수 있습니다. 이는 추론 인프라에 대한 모델 공급망 공격입니다.
공격 경로
공격자는 조작된 활성화 함수 구성이 있는 악성 HuggingFace 모델을 게시합니다. PYTHONOPTIMIZE=1으로 실행 중인 vLLM이 로드하고 인증 없이 공격자 코드를 실행합니다.
영향받는 시스템
Python 최적화가 활성화된 상태로 실행할 때 vLLM < 0.22.0
완화 방안
vLLM 0.22.0으로 업그레이드합니다. python -O 또는 PYTHONOPTIMIZE=1로 vLLM을 실행하지 마십시오. 모델 소스를 신뢰할 수 있는 레지스트리로 제한합니다. 수정: https://github.com/vllm-project/vllm/commit/b3c7ffcab82c2439726f8cb213800f6f38c023d3