🇰🇷 한글 설명
vLLM 0.22.1 미만 버전의 Dockerfile에서 flashinfer-jit-cache 패키지를 통한 의존성 혼동(Dependency Confusion) 공격 취약점이 발견되었습니다. 공격자가 PyPI에 동일한 이름의 악성 패키지를 등록할 경우, Docker 빌드 과정에서 루트 권한으로 임의 코드가 실행되어 컨테이너 이미지에 백도어가 설치될 수 있습니다.
💡 쉬운 설명
프로그램을 설치할 때 원래 가져와야 할 안전한 파일 대신 해커가 만든 가짜 파일을 내려받게 만드는 공격입니다. 이로 인해 서버에 몰래 뒷문을 만들어두고 사용자의 데이터나 비밀번호를 훔쳐갈 수 있습니다.
🇺🇸 원문 (English)
vLLM is an inference and serving engine for large language models (LLMs). Prior to 0.22.1, the vLLM Dockerfile is vulnerable to a dependency confusion attack through the flashinfer-jit-cache package. The package is installed from a custom index (flashinfer.ai/whl/) using --extra-index-url, but the package name was not registered on PyPI, and UV_INDEX_STRATEGY="unsafe-best-match" is set globally. An attacker who registers flashinfer-jit-cache on PyPI with version 0.6.11.post2 can execute arbitrary code as root during the Docker build and backdoor every resulting container image, enabling exfiltration of all user prompts, API credentials, and model data from production vLLM deployments This vulnerability is fixed in 0.22.1.
📍 영향받는 시스템
vLLM versions prior to 0.22.1
⚔️ 공격 벡터
PyPI에 동일한 이름의 고버전 악성 패키지를 등록하여 Docker 빌드 시 의존성 혼동 유도
🛡️ 대응 방법
vLLM 버전을 0.22.1 이상으로 업데이트하여 Dockerfile의 의존성 설치 방식 수정
🔧 검증 코드
설치된 flashinfer-jit-cache의 버전을 확인하여 취약한 버전이 포함되어 있는지 점검합니다.
pip show flashinfer-jit-cache 2>/dev/null | grep -E 'Version'