vLLM多模态嵌入输入形状不当导致拒绝服务漏洞分析

本文详细分析了CVE-2025-62372漏洞,该漏洞存在于vLLM项目中,攻击者可通过提供维度正确但形状错误的多模态嵌入输入导致服务崩溃,影响范围包括v0.5.5至v0.11.1版本。

vLLM vulnerable to DoS with incorrect shape of multimodal embedding inputs · CVE-2025-62372

漏洞详情

摘要 当向服务于多模态模型的vLLM引擎传递具有正确维度(ndim)但形状错误(例如隐藏维度不正确)的多模态嵌入输入时,用户可以导致引擎崩溃,无论模型是否旨在支持此类输入(如支持模型页面所定义)。 该问题自我们添加图像嵌入输入支持(即 #6613,在v0.5.5版本中发布)以来就一直存在。

详细信息 以图像嵌入为例:

  • 对于支持图像嵌入输入的模型,引擎在将嵌入分散到 inputs_embeds 时崩溃(形状不匹配)
  • 对于不支持图像嵌入输入的模型,引擎在 get_input_embeddings 内部验证输入时崩溃(验证失败)

这是因为我们在输入处理器中(通过 MultiModalDataParser)仅验证张量的维度,而未验证完整形状。

影响

  • 通过使引擎崩溃导致拒绝服务

缓解措施

  • 使用API密钥将访问权限限制给受信任的用户
  • 将所有非文本模态的 --limit-mm-per-prompt 设置为0以禁止多模态输入,这包括多模态嵌入输入。然而,这样一来模型将只接受文本,失去了使用多模态模型的目的。

解决方案 vllm-project/vllm#27204

参考链接

技术规格

软件包
pip - vllm (pip)

受影响版本

= 0.5.5, < 0.11.1

已修复版本
0.11.1

安全评估

严重程度
高危

CVSS总体评分
8.3/10

CVSS v4基础指标
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H

EPSS评分
0.047%(第14百分位)

弱点分类

弱点
CWE-129 - 数组索引的不当验证

描述
产品在计算或使用数组索引时使用了不受信任的输入,但产品未验证或错误地验证索引以确保索引引用数组内的有效位置。

标识符

  • CVE ID: CVE-2025-62372
  • GHSA ID: GHSA-pmqf-x6x8-p7qw

源代码
vllm-project/vllm

致谢

报告者
DarkLight1337

修复审核者
ywang96, Isotr0py

协调员
russellb

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计