vLLM反序列化漏洞导致拒绝服务及潜在远程代码执行
漏洞概述
在vLLM 0.10.2及更高版本的Completions API端点中存在一个内存损坏漏洞,可导致服务崩溃(拒绝服务)并可能引发远程代码执行(RCE)。当处理用户提供的提示嵌入向量时,端点使用torch.load()加载序列化张量,但缺乏充分验证。
技术细节
由于PyTorch 2.8.0中引入的变更,稀疏张量完整性检查默认被禁用。因此,恶意构造的张量可以绕过内部边界检查,并在调用to_dense()期间触发内存越界写入。这种内存损坏可能导致vLLM崩溃,并可能在托管vLLM的服务器上执行代码。
漏洞代码位置
漏洞位于vllm/entrypoints/renderer.py:148的以下代码中:
|
|
由于缺少检查,加载用户提供的无效提示嵌入张量可能导致在to_dense调用中发生越界写入。
影响范围
所有能够访问此API的用户都可能利用此漏洞。对不可信输入的不安全反序列化可能被滥用以实现拒绝服务,并可能在vLLM服务器进程中实现远程代码执行。这影响了将vLLM作为服务器运行的部署或任何反序列化不可信/模型提供负载的实例。
受影响版本
- vLLM >= 0.10.2, < 0.11.1
已修复版本
- vLLM 0.11.1
修复方案
修复通过vllm-project/vllm#27204实现。解决方案是显式启用torch.sparse.check_sparse_tensor_invariants上下文管理器,确保在加载稀疏张量时执行完整性检查。
安全建议
- 立即升级:所有使用vLLM 0.10.2至0.11.0版本的用户应立即升级到0.11.1或更高版本。
- 输入验证:在处理用户提供的序列化数据时,始终实施严格的输入验证和完整性检查。
- 最小权限原则:限制对Completions API端点的访问,仅允许受信任的用户和系统调用。
漏洞评分
- CVSS v3.1评分:8.8(高危)
- 攻击向量:网络
- 攻击复杂度:低
- 所需权限:低
- 用户交互:无
- 影响范围:机密性(高)、完整性(高)、可用性(高)
相关标识符
- CVE ID:CVE-2025-62164
- GHSA ID:GHSA-mrw7-hf4f-83pf
致谢
发现者:AXION安全研究团队(Omri Fainaro, Bary Levy),感谢他们的发现和协调披露。
参考链接
- vllm-project/vllm#27204(修复提交)
- vllm-project/vllm@58fab50(代码变更)
- https://nvd.nist.gov/vuln/detail/CVE-2025-62164(NVD数据库条目)
此漏洞凸显了在AI/ML系统处理用户输入时实施严格安全措施的重要性,特别是在涉及张量序列化和反序列化的场景中。