漏洞  ·  2026-10-26

vLLM 跨租户拒绝服务通过连接器缓存前缀上的未初始化 LogprobsTensors 实现

漏洞Medium 影响GlobalCVE-2026-116180
vllm/v1/outputs.py 中的 LogprobsTensors.empty_cpu() 使用 torch.empty() 分配底层 int32 张量,使其处于未初始化状态。当模型运行器为某个请求填充 logprobs 时,如果该请求的前缀被 KVConnectorBase_V1 子类报告为外部计算,则位置 [0..num_computed_tokens-1] 永远不会被写入,下游 tokenizer.decode() 会遇到无效的 int32 值并抛出 OverflowError,该错误从 EngineCore 传播出去并导致引擎崩溃。
对连接器缓存前缀发送一个带有 prompt_logprobs(或 logprobs + echo=true)的 API 请求即可使 EngineCore 崩溃,并丢弃该引擎上的所有进行中请求,包括同租户流量——这是跨租户且可重复的杀伤循环。实际暴露风险最高的是对 vLLM + LMCache 进行 lm-eval-harness 多项选择题工作负载(MMLU/ARC/HellaSwag/BBH/PIQA)时(CVSS 7.7)。
对连接器缓存前缀发送一个设置了 prompt_logprobs 的请求,以崩溃共享引擎并丢弃同租户流量。
vLLM >= 0.8.5,< 0.31.0(带有 KV 连接器的 V1 引擎)。
升级到 vLLM 0.31.0;修复将 torch.empty() 替换为零初始化的 token ID 和 -inf logprobs,在 LogprobsTensors.empty_cpu() 中实现。
vLLM GitHub advisory GHSA-rhcx-5729-88vgNVD detail CVE-2026-116180
在实时动态中查看 浏览更多 AI 安全与治理相关发现 — 每日清晨更新。
打开动态 →