事件经过
在 vLLM 0.22.1 之前,官方 vLLM Dockerfile 使用 --extra-index-url 从自定义索引(flashinfer.ai/whl/)安装 flashinfer-jit-cache 包,同时全局设置 UV_INDEX_STRATEGY='unsafe-best-match'。该包名称未在 PyPI 上注册。攻击者可以使用足够高的版本号(例如 0.6.11.post2)在 PyPI 上注册 flashinfer-jit-cache,在每次 Docker 构建期间以 root 身份执行任意代码,后门化每个生成的容器镜像。NVD 确认 CVSS 8.8 高,发布于 2026-06-22。
影响分析
这是对 vLLM 官方 Docker 镜像构建过程的供应链攻击。任何从官方 Dockerfile 构建 vLLM 的组织都容易受到其生产 LLM 服务容器被无声后门化的攻击,使得所有用户提示、API 凭证、模型权重和密钥在容器启动时被窃取 — 具有 root 级别的持久性。
攻击途径
攻击者在 PyPI 上注册 flashinfer-jit-cache,版本高于自定义索引包;UV 的 unsafe-best-match 策略在 docker build 期间解析为 PyPI 版本,以 root 身份执行攻击者代码
受影响系统
vLLM Dockerfile 构建 < 0.22.1
缓解措施
升级到 vLLM 0.22.1,其修补了 Dockerfile。公告:https://github.com/vllm-project/vllm/security/advisories/GHSA-jrf6-vqxq-pjv2