事件经过
vLLM >=0.10.2 和 <0.28.0 版本在为 NanoNemotronVL 模型提取视频输入中的音频时不应用任何音频解码大小或持续时间限制。在 nano_nemotron_vl.py 中,_extract_audio_from_videos 调用 load_audio_pyav(BytesIO(video_bytes)) 而不传递 max_duration_s 或 max_decode_bytes 参数,允许攻击者提供一个小的、高度压缩的视频,强制服务器在音频解码期间分配数千兆字节的内存,导致拒绝服务。
影响分析
低成本、小有效负载的请求可以耗尽共享多模态推理服务器上的内存,中断该 vLLM 实例所有用户的可用性——这是针对 AI 推理基础设施的经典放大 DoS,不需要除了正常 API 访问之外的任何身份验证绕过。
攻击途径
已认证客户端向多模态端点提交一个小的、高度压缩的视频文件;音频提取路径在没有大小/持续时间限制的情况下解码它,导致数千兆字节级内存分配和服务器崩溃。
受影响系统
vLLM >=0.10.2, <0.28.0(NanoNemotronVL 模型支持)
缓解措施
升级到 vLLM 0.28.0 或更高版本,该版本在 NanoNemotronVL 音频提取路径上强制实施 max_duration_s/max_decode_bytes 限制。