本文使用的 Docker 镜像
发布日期: 2026 年 10 月 29 日
风险等级: 高危(High)
漏洞编号: CVE-2026-114051 · CVE-2026-114054 · CVE-2026-116172 · CVE-2026-116173 · CVE-2026-116174 · CVE-2026-116175 · CVE-2026-116178 · CVE-2026-116181
涉及镜像: vllm/vllm-openai — 轩辕镜像 · Docker Hub
CVSS: 最高 8.2(High,CVSS 4.0)。各条分数见下表
披露时间: GHSA 与 NVD 多在 2026 年 10 月 21 日至 25 日公开,10 月 28 日进入本批视野
相关公告: GHSA-4xqp-c3mv-qff7 · GHSA-rh6f-3x46-j33q
一、漏洞概述
这八条和已经写过的远程代码执行不是同一条路径。一次升到 0.32.0 可以一起盖住,也盖住此前建议固定在这个标签上的那些高危。
CVE-2026-114051: 请求里的 max_tokens 为空时,过大的 min_tokens 不会被拦住。引擎的调度线程退出后,进程还在,/health 仍可能返回 200,后面的请求挂住。
CVE-2026-114054: 多模态缓存键会用到图片里的标识或调用方提供的 cache_salt。键撞在一起时,一个请求可能读到另一个请求的缓存内容。GitHub Advisory 对其中一处记为 CVSS 3.1 6.5,NVD CVSS 4.0 为 7.1。
CVE-2026-116172 / 116173 / 116174: Rust gRPC 的生成接口没有走 Python 那套数量和词表检查。候选数量、过长的 token 列表,或词表外的 prompt token,都可以把 EngineCore 停掉。只影响 0.22.0 至 0.24.0 之前。
CVE-2026-116175: 对话里的音频没有套用转写接口上的时长上限,超大音频可以耗尽内存。影响 0.19.0 至 0.24.0 之前。
CVE-2026-116178: 分离式推理接口接受和提示对不上的多模态占位信息,引擎会崩。影响 0.20.0 至 0.30.0 之前。
CVE-2026-116181: 停止词编号只检查是不是整数,不检查是否在词表里。引擎可能崩溃,或在 GPU 上写出界。影响 0.20.1 至 0.29.0 之前。
二、漏洞状态
统计截止: 2026 年 10 月 29 日(UTC+8)
| 项目 | 状态 |
|---|---|
| 漏洞细节 | 已公开(各 GHSA、NVD) |
| 建议版本 | v0.32.0。Hub 上 vllm/vllm-openai:v0.32.0 已存在,推送于 2026-10-18 |
| CISA KEV | 未列入 |
| CVE | CVSS 4.0 | 受影响 | 本条下限 |
|---|---|---|---|
| CVE-2026-114051 | 7.1(3.1 为 7.5) | 低于 0.31.0 | ≥ 0.31.0 |
| CVE-2026-114054 | 7.1(GHSA 一处为 3.1 的 6.5) | 低于 0.31.0,在 0.25.1 上确认 | ≥ 0.31.0 |
| CVE-2026-116172 | 8.2(NVD 3.1 为 7.5) | 0.22.0 至 0.24.0 之前 | ≥ 0.24.0 |
| CVE-2026-116173 | 8.2(NVD 3.1 为 7.5) | 0.22.0 至 0.24.0 之前 | ≥ 0.24.0 |
| CVE-2026-116174 | 8.2(NVD 3.1 为 7.5) | 0.22.0 至 0.24.0 之前 | ≥ 0.24.0 |
| CVE-2026-116175 | 7.1(3.1 为 6.5) | 0.19.0 至 0.24.0 之前 | ≥ 0.24.0 |
| CVE-2026-116178 | 8.2(NVD 3.1 为 7.5) | 0.20.0 至 0.30.0 之前 | ≥ 0.30.0 |
| CVE-2026-116181 | 7.1(3.1 为 6.5) | 0.20.1 至 0.29.0 之前 | ≥ 0.29.0 |
0.24.0、0.29.0、0.30.0、0.31.0 都只盖住表里的一部分。10 月 27 日那两条远程代码执行要 0.32.0。不要停在中间版本。
三、影响范围
对外开放或半开放的 vLLM OpenAI 兼容接口,以及开了 Rust gRPC 的推理服务。后果是服务挂起、引擎崩溃,或跨请求读到缓存。已经固定在 vllm/vllm-openai:v0.32.0 的实例,这八条已经包含。
四、修复建议
1. 升到 v0.32.0(推荐)
bashdocker pull docker.xuanyuan.run/vllm/vllm-openai:v0.32.0
改掉 Compose 或 Kubernetes 里的标签后重建。进入容器确认 vLLM 版本不低于 0.32.0。
Docker Hub: vllm/vllm-openai
轩辕镜像: vllm/vllm-openai
2. 引擎已经挂过的实例
用新镜像重建后看 /health 是否和实际推理一致。缓存可能混过别的请求内容的,轮换该进程能读到的凭据,并检查异常的长音频和 gRPC 调用。
五、临时缓解措施
在升到 v0.32.0 之前:
-
不要把未设
--api-key、也没有网关的推理接口暴露给不可信调用方
多条不需要登录。 -
用不上的 gRPC 和对话音频入口先关掉
这只缩小对应那几条的入口。 -
不要把 0.31.0 或更低的下限当成全部修好
本批一起修,请固定 v0.32.0。
六、与轩辕镜像用户的相关说明
轩辕镜像提供的是镜像加速与拉取服务,不替代 vLLM 的版本修复。
- 站内页:vllm/vllm-openai。拉取命令为
docker.xuanyuan.run/vllm/vllm-openai:v0.32.0。 - 已经在用这个标签的,这八条不用再换版本。基于更旧镜像二次构建的,要改基础标签后重新构建。
- 配置与排错见 轩辕镜像使用手册、镜像拉取 FAQ。
七、参考链接
- GitHub Advisory:GHSA-4xqp-c3mv-qff7 · GHSA-rh6f-3x46-j33q · GHSA-rwfw-xvg3-3937 · GHSA-6pgw-f3pv-4h8q · GHSA-w2v2-5662-8v5q · GHSA-r45p-7qwx-qwjw · GHSA-34qw-q2h2-jp3m · GHSA-w9r6-29q4-pvpr
- NVD:CVE-2026-114051 · CVE-2026-114054 · CVE-2026-116172 · CVE-2026-116173 · CVE-2026-116174 · CVE-2026-116175 · CVE-2026-116178 · CVE-2026-116181
- Docker Hub:vllm/vllm-openai
- 轩辕站内镜像页:vllm/vllm-openai
阅读原文
轩辕镜像安全团队
2026 年 10 月 29 日
评论交流
免责声明
本博客文章所提供的内容、技术方案、配置示例及部署指南等信息,仅供学习交流和技术参考使用。文章内容基于发布时的技术环境和版本信息编写,可能因时间推移、技术更新或环境差异而存在不适用的情况。
文中提及的第三方镜像由其原维护者自行维护与更新,轩辕镜像不负责相关镜像的维护。如镜像涉及版权争议或违法违规情形,请直接联系该镜像维护者处理,相关事宜与轩辕镜像无关。
用户在参考本博客内容进行部署操作前,应当充分了解相关技术风险,并建议在测试环境中进行充分验证和测试,确认无误后再考虑在生产环境中使用。生产环境部署前,请务必进行数据备份,并制定相应的回滚方案。
用户因使用本博客内容进行部署操作而产生的任何损失、数据丢失、系统故障、安全风险或其他问题,均由用户自行承担全部责任。轩辕镜像官方不对因使用本博客内容而产生的任何直接或间接损失承担责任。
本免责声明的最终解释权归轩辕镜像官方所有。
