CVE-2026-100651
Vllm: denial of service
- Risk score
- 49/100
- CVSS
- 6.5 v3.1
- Exploit chance (30 days)
- 0.3%
- Published
- 26 Sep 2026
Open in the live forecast Today's forecast
What to know
- What it is
- vLLM before 0.29.0 fails to enforce decoder prompt-length validation on the disaggregated serving endpoint /inference/v1/generate. When the request contains a 'features' (multimodal) payload, vllm/entrypoints/serve/disagg/serving.py builds a multimodal EngineInput directly from the caller-supplied token_ids, and Gener…
- Affected
- Vllm before 0.29.0
- Fix
- Upgrade Vllm to 0.29.0 or later.
- Exploitation
- Public proof of concept
Story map
At a glance
Vllm: Amber, patch this week. vLLM versions 0.22.0 through 0.23.0 fail to validate stop_token_ids against vocabulary bounds in Rust HTTP and gRPC frontends, allowing out-of-vocabulary token IDs to reach MinTokensLogitsProcessor. Attackers can submit requests with min_tokens greater than zero and out-of-vocabulary stop_token_ids to trigger CUDA ten…
The flaws
- CVE-2026-100651: Denial of service (CVSS 6.5 · EPSS 0%)
- CVE-2026-100652: Improper input validation (CVSS 7.5 · EPSS 0%)
- CVE-2026-105759: VLLM is an inference and serving engine for large language models (CVSS 7.5 · EPSS 0%)
- CVE-2026-103241: Denial of service (CVSS 7.5 · EPSS 1%)
The fix
Upgrade Vllm: 0.29.0 · 0.30.0 or later on your release line
Who is exposed: Vllm
Where it stands
- Public proof of concept
Connects to
- Same weakness: Denial of service (CWE-400). 252 other warnings in 30 days
- Same product: Earlier Vllm warnings. 15 in the last 90 days
Why it is Yellow
- CVSS 6.5 medium
- Public exploit or proof of concept referenced
References
Original description
vLLM before 0.29.0 fails to enforce decoder prompt-length validation on the disaggregated serving endpoint /inference/v1/generate. When the request contains a 'features' (multimodal) payload, vllm/entrypoints/serve/disagg/serving.py builds a multimodal EngineInput directly from the caller-supplied token_ids, and GenerateRequest.token_ids (vllm/entrypoints/serve/disagg/protocol.py) is not checked against model_config.max_model_len. For multimodal processors that report skip_prompt_length_check=True (for example Nemotron Parse, Whisper, and FireRedLID), InputProcessor._validate_prompt_len() returns immediately for both encoder and decoder prompts, so an overlong prompt becomes an EngineCoreRequest and reaches the worker input-batch copy into a fixed max_model_len-wide NumPy row. A client able to reach the endpoint on an affected model configuration can therefore submit an overlong token_ids list to trigger a worker failure and denial of service. Fixed in 0.29.0.
Last activity 26 Sep 2026. Patch Forecast updates every hour.