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.
Published: 2026-09-26
Score: 7.1 High
EPSS: n/a
KEV: No
Impact: Denial of Service
Action: Immediate Patch
AI Analysis

Impact

The vulnerability in vLLM allows an attacker to trigger a denial of service by exploiting a missing prompt‑length validation. When a request containing a 'features' payload is sent to the disaggregated serving endpoint /inference/v1/generate, the server constructs an EngineInput directly from the supplied token_ids without checking against the configured maximum model length. For multimodal processors that skip prompt validation, an overlong prompt is forwarded to the worker layer where it overflows a fixed‑size NumPy buffer, causing the processing worker to fail. The failure results in an unresponsive service for the affected model.

Affected Systems

Vulnerable versions are vllm‑project's vllm library prior to 0.29.0. The issue applies to any deployment that exposes the /inference/v1/generate endpoint for multimodal requests, particularly models that set skip_prompt_length_check to true such as Nemotron Parse, Whisper, and FireRedLID. Systems running vllm 0.28.x or earlier are at risk.

Risk and Exploitability

The CVSS score of 7.1 indicates a high impact and medium to high exploitability. Although the EPSS score is not available and the vulnerability is not currently listed in the CISA KEV catalog, the presence of an open, unauthenticated inference endpoint provides an attacker with a practical attack vector. Overloading the worker can crash the service or cause the inference server to become non‑responsive, thereby degrading availability for legitimate users. Immediate patching mitigates the risk fully, while temporary network restrictions reduce exposure until a patch is applied.

Generated by OpenCVE AI on September 26, 2026 at 15:46 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to vllm 0.29.0 or a newer version that includes the fix.
  • Restrict access to the /inference/v1/generate endpoint to trusted IP addresses or networks, or apply application‑level authentication.
  • Validate the length of token_ids on the client side so that requests do not exceed the model’s maximum before sending them.

Generated by OpenCVE AI on September 26, 2026 at 15:46 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 26 Sep 2026 13:30:00 +0000

Type Values Removed Values Added
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.
Title vllm before 0.29.0 Denial of Service via Decoder Prompt Length Bypass
First Time appeared Vllm
Vllm vllm
Weaknesses CWE-400
CPEs cpe:2.3:a:vllm:vllm:*:*:*:*:*:*:*:*
Vendors & Products Vllm
Vllm vllm
References
Metrics cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

cvssV4_0

{'score': 7.1, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-09-26T13:23:21.141Z

Reserved: 2026-09-26T02:33:07.899Z

Link: CVE-2026-100651

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-26T14:16:47.663

Modified: 2026-09-26T14:16:47.663

Link: CVE-2026-100651

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-26T16:00:09Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption