무슨 일이 있었나
vLLM의 이미지 경로는 디코더 선택을 제한하지 않고 공격자가 통제하는 바이트를 Pillow에 전달하여, 평범해 보이는 이미지가 vLLM이 의도하지 않은 외부 렌더러( EPS/PostScript용 Ghostscript)에 의해 디코딩될 수 있었고, 이로 인해 취약한 Ghostscript가 있는 호스트에서 코드 실행이 발생하거나 Pillow 12.0.0–12.2.0에서 작업자 소진이 발생할 수 있었습니다. 수정(커밋 710ac56e에서 확인됨)은 이미지 형식 허용 목록을 추가하고 PostScript 페이로드를 거부합니다. CVSS 8.1.
왜 중요한가
이것은 핵심 LLM 서빙 엔진에서 원격으로 트리거 가능한 RCE/중단 경로입니다: 단일 조작된 이미지 요청으로 프로세스 권한에 도달하거나 미디어 작업자를 소진시킬 수 있습니다. vLLM에서 멀티파트/멀티모달 서빙이 기본적으로 노출되므로, 영향 범위는 이미지 입력을 받아들이는 모든 배포입니다.
공격 경로
ImageMediaIO는 디코더 선택을 제한하지 않고 Image.open(BytesIO(data))를 통해 공격자가 통제하는 이미지 바이트를 Pillow에 전달하며, MIME 레이블은 선택된 형식을 제한하지 않습니다. 따라서 이미지 지원 요청 경로(parse_image/fetch_image)는 EPS/PostScript 페이로드를 호스트로 전달할 수 있습니다; 취약한 Ghostscript가 있는 호스트는 vLLM 프로세스 권한으로 명령을 실행하고, Pillow 12.0.0–12.2.0은 미디어 로딩 작업자 소진을 유발합니다.
영향받는 시스템
vLLM 0.32.0 미만. RCE는 호스트에 CVE-2024-29510의 영향을 받는 Pillow 설치 Ghostscript가 있는지에 따라 달라집니다; 작업자 소진은 Pillow 12.0.0–12.2.0(CVE-2026-59203)에 따라 달라집니다.
완화 방안
vLLM 0.32.0 이상으로 업그레이드하세요. 이는 EPS/WMF/BUFR/GRIB/HDF5/MPEG를 제외한 이미지 형식 허용 목록을 추가하여 PostScript 바이트가 외부 렌더러에 도달하지 않도록 합니다; 또한 GPU 호스트의 Pillow 및 Ghostscript가 패치되었는지 확인하세요.