CVE-2025-62426vLLM是一个用于大型语言模型(LLM)推理和服务的开源引擎。该漏洞影响vLLM从0.5.5版本到0.11.1之前的所有版本。漏洞源于/v1/chat/completions和/tokenize API端点对chat_template_kwargs请求参数的处理不当。在这些端点中,chat_template_kwargs参数被直接用于代码逻辑,但在聊天模板验证之前就已被处理。攻击者可以通过发送包含特定chat_template_kwargs参数的请求,触发服务器进入长时间处理状态,从而耗尽服务器资源,导致所有其他用户请求被延迟或无法处理。此漏洞属于低权限拒绝服务攻击,无需用户交互即可实施,成功利用可造成服务可用性完全丧失。
漏洞根因在于vLLM的chat_utils.py(约第1602-1610行)和serving_engine.py(约第809-814行)中对chat_template_kwargs参数的处理流程存在缺陷。当用户调用/v1/chat/completions或/tokenize端点时,服务器接收chat_template_kwargs参数后,在未进行充分验证的情况下直接将其传递给聊天模板处理逻辑。攻击者可以构造特殊的参数值(如包含大量嵌套数据或触发复杂模板渲染逻辑的值),使得模板处理过程陷入计算密集型操作或无限循环状态。由于Python GIL(全局解释器锁)的特性,这种CPU密集型操作会阻塞服务器进程,导致所有并发请求被阻塞。攻击者只需发送少量此类恶意请求即可实现对整个API服务的拒绝服务攻击。修复版本0.11.1通过在参数传递给模板前增加验证逻辑来解决此问题。