vLLM服务器因特定参数漏洞面临拒绝服务攻击风险

CVE-2025-62426漏洞揭示vLLM服务中存在的严重安全问题。攻击者通过构造特殊的`chat_template_kwargs`参数,可在处理大型聊天补全或令牌化请求时导致服务器阻塞,引发拒绝服务。该漏洞影响vLLM 0.5.5至0.11.1版本,已在0.11.1版本中修复。

vLLM服务器安全漏洞:通过特定参数导致拒绝服务攻击

漏洞标识:CVE-2025-62426
严重程度:中危(CVSS评分6.5)
影响版本:vLLM 0.5.5至0.11.1
修复版本:vLLM 0.11.1

漏洞概述

vLLM作为大语言模型(LLM)的推理和服务引擎,在其0.5.5至0.11.1版本中,/v1/chat/completions/tokenize端点存在一个安全缺陷。这些端点允许一个名为chat_template_kwargs的请求参数,该参数在代码中被使用前未针对聊天模板进行适当验证。

攻击者通过构造特定的chat_template_kwargs参数,可以长时间阻塞API服务器的处理,延迟所有其他请求,从而实现对服务器的拒绝服务攻击。

技术原理

漏洞机制

serving_engine.py中,chat_template_kwargs参数被解包并作为关键字参数传递给chat_utils.py中的apply_hf_chat_template方法,而该字典中的键和值在传递前未经过验证。这意味着攻击者可以利用这些参数覆盖apply_hf_chat_template方法中的可选参数,例如将tokenize参数的默认值从False更改为True

serving_chat.pyserving_tokenization.py都调用了serving_engine.py中的_preprocess_chat方法,并且都传递了chat_template_kwargs参数。

因此,像{"tokenize": True}这样的chat_template_kwargs会使令牌化操作在应用聊天模板的过程中发生,而这并非预期行为。令牌化是一个阻塞操作,当输入足够大时,可以阻塞API服务器的事件循环,从而在处理完成之前阻塞所有其他请求。

代码位置

影响范围

受影响的系统

  • vLLM版本0.5.5至0.11.1

攻击前提

  • 攻击者需要具有低权限认证(PR:L)
  • 无需用户交互(UI:N)
  • 可通过网络远程攻击(AV:N)

安全影响

  • 可用性:高影响(A:H),攻击者可导致服务拒绝
  • 机密性:无影响(C:N)
  • 完整性:无影响(I:N)

解决方案

官方修复

该漏洞已在vLLM 0.11.1版本中修复。修复方案包括:

  1. 硬编码关键参数:将tokenize参数硬编码为始终为False,而不是允许调用者可选地覆盖它
  2. 参数验证改进:不将chat_template_kwargs作为解包的关键字参数传递,而是将其作为字典传递,并在apply_hf_chat_template中解析针对聊天模板的关键字参数后仅解包必要的参数

修复链接

漏洞分类

CWE分类

  • CWE-770:资源分配无限制或节流
  • 描述:产品在代表参与者分配可重用资源或资源组时,未对可分配资源的大小或数量施加任何限制,违反了该参与者的预期安全策略。

CVSS评分

  • 基础分数:6.5(中危)
  • 向量:CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
  • 攻击向量:网络(AV:N)
  • 攻击复杂度:低(AC:L)
  • 权限要求:低(PR:L)
  • 用户交互:无(UI:N)
  • 范围:未改变(S:U)
  • 机密性影响:无(C:N)
  • 完整性影响:无(I:N)
  • 可用性影响:高(A:H)

参考信息

相关标识

  • GHSA ID:GHSA-69j4-grxj-j64p
  • CVE ID:CVE-2025-62426

时间线

  • 发布时间:2025年11月20日
  • 最后更新:2025年11月21日
  • NVD发布日期:2025年11月20日
  • NVD最后修改:2025年12月4日

数据来源

  • GitHub Advisory Database
  • 国家漏洞数据库(NVD)

安全建议

  1. 立即升级:所有使用vLLM 0.5.5至0.11.1版本的用户应立即升级到0.11.1或更高版本
  2. 监控异常请求:监控API端点中的异常chat_template_kwargs参数使用
  3. 实施请求限制:考虑对大型聊天补全或令牌化请求实施大小和频率限制
  4. 防御性编程:在处理用户提供的参数时始终进行验证和清理

此漏洞凸显了在处理用户提供的参数时进行适当验证的重要性,特别是在高性能LLM服务环境中,资源分配不当可能导致严重的服务可用性问题。

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