vLLM远程代码执行漏洞分析:模型初始化时的动态模块加载风险

3 阅读2分钟

漏洞详情

概述

vLLM在模型解析期间加载Hugging Face的auto_map动态模块时,未对trust_remote_code参数进行控制,使得攻击者可通过模型仓库(本地目录或远程Hugging Face仓库)中的恶意Python代码在服务器启动时执行任意代码。

影响

能够影响模型仓库(本地目录或远程Hugging Face仓库)的攻击者,可以在vLLM主机上于模型加载期间实现任意代码执行。此过程发生在任何请求处理之前,且不需要API访问权限。

受影响版本

所有版本中,当vllm/model_executor/models/registry.py通过try_get_class_from_dynamic_module解析auto_map条目而未检查trust_remote_code时,均会受到影响(至少当前的main分支)。

技术细节

在模型解析期间,vLLM无条件地遍历模型配置中的auto_map条目,并调用try_get_class_from_dynamic_module。该函数委托给Transformers的get_class_from_dynamic_module并执行模块代码。即使trust_remote_code设置为false,此过程也会发生,使得恶意模型仓库能够在引用的模块中嵌入代码,并在初始化期间执行。

相关代码:

  • vllm/model_executor/models/registry.py:856auto_map 解析
  • vllm/transformers_utils/dynamic_module.py:13 — 委托给 get_class_from_dynamic_module,该函数执行代码

修复

  • vllm-project/vllm#32194

致谢

由bugbunny.ai报告。

参考

安全信息

严重程度

CVSS 总体得分: 8.8/10

CVSS v3 基础指标

  • 攻击向量(AV): 网络(N)
  • 攻击复杂度(AC): 低(L)
  • 所需权限(PR): 无(N)
  • 用户交互(UI): 需要(R)
  • 范围(S): 未改变(U)
  • 机密性(C): 高(H)
  • 完整性(I): 高(H)
  • 可用性(A): 高(H)

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

EPSS 得分

0.046%(第14百分位数)

弱点

  • CWE-ID: CWE-94
  • 描述: 对代码生成的的不当控制(“代码注入”)

标识符

  • CVE ID: CVE-2026-22807
  • GHSA ID: GHSA-2pc9-4j83-qjmr

源代码

vllm-project/vllm

相关人员

  • 报告者: zaddy6, arthurgervais
  • 修复开发者: DarkLight1337
  • 协调员: russellb glyoVzOLZA9nMhz/bDHDAWzfRfZ0dSZtQUalpUyOmxcPmrltPTj4nR6lJ1xPSMoyyx2MYZpjNcoCrWHBEbmBKw==