vLLM OpenAI API 服务器中未受限 参数导致的内存溢出拒绝服务漏洞 漏洞概述 该漏洞存在于 vLLM OpenAI 兼容 API 服务器中。由于在 和 中缺少对 参数的上限验证,未授权的攻击者可以发送带有极大 值的单个 HTTP 请求。这将完全阻塞 Python 的 事件循环,并通过在请求到达之前将数百万个请求对象副本分配给堆,导致内存溢出 (OOM) 崩溃。 影响范围 受影响版本: 修复版本: CVSS 评分: 8.5 / 10 (High) 影响类型: 资源耗尽 / 拒绝服务 (Resource Exhaustion / Denial of Service) 受影响方: 托管公开 vLLM API 服务器的任何个人或组织,以及作为 vLLM 反向代理的 SaaS/aaS 平台。 漏洞代码细节 1. 协议层 (Protocol Layer) 在 中, 参数被定义为简单的整数,没有任何 约束。 2. 采样参数层 (SamplingParams Layer - 不完整验证) 当 API 请求转换为内部 时, 中的 方法仅检查了下限 ( ),完全省略了上限检查。 3. 引擎层 (Engine Layer - OOM 触发)** 当恶意请求到达核心引擎 ( ) 时,引擎试图在异步循环中扇出 次请求以生成独立的序列。由于 Python 的 运行在单线程事件循环上,这种单线程的 循环会垄断 CPU 线程。服务器停止响应所有其他连接,同时内存分配器被数百万个请求对象副本淹没。 修复方案 在 参数上添加上限验证(Upper bound validation),防止攻击者通过发送极大的 值来耗尽服务器资源。相关修复已在 PR 中提出。