事件经过
vLLM 0.28.0 之前的版本在 LlavaOnevision2 处理器加载器(llava_onevision2.py 中的 _load_ov2_processor)中包含 RCE 漏洞。该函数调用 Transformers 的 get_class_from_dynamic_module 来加载远程处理器类,但此调用不接受 trust_remote_code 参数——该设置被默认忽略,因此即使运营者明确设置了 trust_remote_code=False,捆绑在 processing_llava_onevision2.py 中的任意代码的恶意模型也会以 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。