Summary
vLLM’s Qwen2-VL and Qwen3-VL video backends took the request-level media_io_kwargs.video.max_frames and fps values as the bound for frame sampling. The server-side num_frames ceiling did not reach that path, so the request decided how many frames of an attacker-supplied video were decoded.
Impact
An unauthenticated caller can send one request to /tokenize that makes the sampler decode every selected frame, consuming API-server memory before scheduling or admission control and potentially terminating the API process. The Rust frontend is not affected because it rejects the media_io_kwargs field. Rated CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L (5.3, Medium), CWE-770.
Affected and fixed
- Affected: vLLM 0.24.0 up to, but not including, 0.30.0
- Fixed: vLLM 0.30.0, PR #56729
Timeline
- Sep 2026: reported as a private GitHub security advisory
- 23 Sep 2026: advisory published by the maintainers as GHSA-x6mc-67gf-chw4
- 5 Oct 2026: CVE-2026-105758 issued by GitHub and published on the CVE List
Credit
Reported by 0xiviel / Eva Crystal (XSource Security).