事件经过
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取决于宿主机上安装的Pillow是否受CVE-2024-29510影响的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已修补。