vLLM反序列化漏洞剖析:从服务拒绝到潜在远程代码执行

本文详细分析了CVE-2025-62164漏洞,该漏洞存在于vLLM的Completions API端点中。由于未充分验证用户提供的序列化张量,结合PyTorch 2.8.0后的默认行为变更,可能导致服务崩溃及潜在的远程代码执行风险。

vLLM反序列化漏洞:导致DoS及潜在RCE · CVE-2025-62164

漏洞详情

包管理器: pip 受影响包: vllm (pip) 受影响版本: >= 0.10.2, < 0.11.1 已修复版本: 0.11.1

描述

概述 vLLM 0.10.2及更高版本的Completions API端点中存在一个内存损坏漏洞,可导致服务崩溃(拒绝服务)并可能引发远程代码执行。当处理用户提供的提示嵌入向量时,端点使用 torch.load() 加载序列化的张量,但未进行充分验证。

由于PyTorch 2.8.0引入的变更,稀疏张量完整性检查默认处于关闭状态。因此,恶意构造的张量可以绕过内部边界检查,并在调用 to_dense() 时触发越界内存写入。此内存损坏可导致vLLM崩溃,并可能在运行vLLM的服务器上导致代码执行。

详情 vllm的Completions API端点存在一个可导致RCE的漏洞。由于在加载用户提供的张量时缺少检查,可能触发越界写入。这是因为自PyTorch 2.8.0起,torch.load(tensor, weights_only=True) 的默认行为是不对稀疏张量执行有效性检查,而需要通过显式使用 torch.sparse.check_sparse_tensor_invariants 上下文管理器来启用。

漏洞位于 vllm/entrypoints/renderer.py:148 的以下代码中:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
def _load_and_validate_embed(embed: bytes) -> EngineEmbedsPrompt:
    tensor = torch.load(
        io.BytesIO(pybase64.b64decode(embed, validate=True)),
        weights_only=True,
        map_location=torch.device("cpu"),
    )
    assert isinstance(tensor, torch.Tensor) and tensor.dtype in (
        torch.float32,
        torch.bfloat16,
        torch.float16,
    )
    tensor = tensor.to_dense()

由于缺少检查,加载用户提供的无效提示嵌入张量可能导致在调用 to_dense 时发生越界写入。

影响 所有有权访问此API的用户都可能利用此漏洞。对不可信输入的不安全反序列化可能被滥用以实现对vLLM服务器进程的DoS攻击及潜在的远程代码执行。这影响了所有将vLLM作为服务器运行或任何对不可信/模型提供的负载进行反序列化的实例。

修复 vllm-project/vllm#27204

致谢 发现者:AXION安全研究团队(Omri Fainaro, Bary Levy):发现与协调披露。

参考

严重性

严重等级: 高 CVSS总分: 8.8 / 10

CVSS v3 基本指标

  • 攻击向量(AV): Network (N)
  • 攻击复杂度(AC): Low (L)
  • 所需权限(PR): Low (L)
  • 用户交互(UI): None (N)
  • 影响范围(S): Unchanged (U)
  • 机密性影响(C): High (H)
  • 完整性影响(I): High (H)
  • 可用性影响(A): High (H)
  • 向量字符串: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

EPSS评分: 0.23%(第46百分位数)

弱点(CWE)

  • CWE-20: 输入验证不当 - 产品接收输入或数据,但未验证或错误地验证该输入具有安全正确处理数据所需的属性。
  • CWE-123: “写任意值到任意位置”条件 - 攻击者能够将任意值写入任意位置的情况,通常是缓冲区溢出的结果。
  • CWE-502: 不可信数据的反序列化 - 产品反序列化不可信数据时,未充分验证结果数据的有效性。
  • CWE-787: 越界写入 - 产品将数据写入预期缓冲区的末端之后或起始之前。

CVE ID: CVE-2025-62164 GHSA ID: GHSA-mrw7-hf4f-83pf

源代码仓库: vllm-project/vllm

致谢人员

  • 发现者: omriaxion
  • 协调者: russellb
  • 修复开发者: DarkLight1337
  • 修复审查者: Isotr0py
  • 修复审查者: ywang96
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计