Description
vLLM is an inference and serving engine for large language models. From 0.19.0 until 0.26.0, the /v1/completions CompletionRequest.prompt field in vllm/entrypoints/openai/completion/protocol.py accepts an unbounded list[str] or list[list[int]], prompt_to_seq() in vllm/renderers/inputs/preprocess.py and OnlineRenderer.preprocess_completion() in vllm/renderers/online_renderer.py expand every element, and vllm/entrypoints/openai/completion/serving.py creates one engine generator and response slot per prompt, allowing an authenticated API client to exhaust CPU, memory, async scheduling capacity, engine request slots, and response buffering with one request. This issue is fixed in version 0.26.0.
Published: 2026-08-13
Score: 6.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

vLLM is a model serving engine that handles large language model inference through a REST‑style API. Between versions 0.19.0 and 0.25.x the completions endpoint accepted a prompt field of type list[ str ] or list[ list [ int ] ]. For each element of this list the code call expansion logic created a separate engine request and a response buffer. An attacker with an authenticated API key could therefore send a single request with an arbitrarily long prompt list, causing the server to spawn many parallel engine generators, consume excessive CPU, memory, and queue capacity, and ultimately exhaust the service's resources, resulting in denial of service. The flaw is a classic example of uncontrolled resource consumption (CWE‑400) and resource allocation (CWE‑770).

Affected Systems

Affected by this vulnerability are installations of vllm from 0.19.0 up to, but not including, 0.26.0. Any system exposing the /v1/completions API endpoint to authenticated users is at risk. The issue was addressed and vendor released version 0.26.0 as the first safe version.

Risk and Exploitability

The CVSS base score of 6.5 indicates a moderate severity. The exploit requires knowledge of the API and authentication credentials; the vulnerability can be triggered by sending a carefully crafted prompt list. Since the EPSS score is 0.00388 (<1%), the exploitation probability is very low but not zero, though the failure manifests only when a large payload is accepted, making it more likely to impact production if not mitigated. The vulnerability is not yet listed in the CISA KEV catalog, so no widespread active exploitation is known, but the potential for resource exhaustion is significant for high‑traffic deployments.

Generated by OpenCVE AI on August 15, 2026 at 01:51 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to vllm 0.26.0 or later where the issue is fixed.
  • If an immediate upgrade is not possible, enforce limits on the maximum size of the prompt list or the number of concurrent engine requests per authenticated client, such as by adding request validation or middleware checks.
  • Deploy infrastructure resource limits or quotas on CPU and memory, and monitor load to throttle or block requests that approach or exceed thresholds.

Generated by OpenCVE AI on August 15, 2026 at 01:51 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-87x5-vmc3-756j vLLM: Completion prompt lists fan out into unbounded engine requests
History

Sat, 15 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-770
References
Metrics threat_severity

None

threat_severity

Moderate


Thu, 13 Aug 2026 18:00:00 +0000

Type Values Removed Values Added
First Time appeared Vllm-project
Vllm-project vllm
Vendors & Products Vllm-project
Vllm-project vllm

Thu, 13 Aug 2026 15:45:00 +0000

Type Values Removed Values Added
Description vLLM is an inference and serving engine for large language models. From 0.19.0 until 0.26.0, the /v1/completions CompletionRequest.prompt field in vllm/entrypoints/openai/completion/protocol.py accepts an unbounded list[str] or list[list[int]], prompt_to_seq() in vllm/renderers/inputs/preprocess.py and OnlineRenderer.preprocess_completion() in vllm/renderers/online_renderer.py expand every element, and vllm/entrypoints/openai/completion/serving.py creates one engine generator and response slot per prompt, allowing an authenticated API client to exhaust CPU, memory, async scheduling capacity, engine request slots, and response buffering with one request. This issue is fixed in version 0.26.0.
Title vLLM: Completion prompt lists fan out into unbounded engine requests
Weaknesses CWE-400
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'}


Subscriptions

Vllm-project Vllm
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-14T16:51:35.047Z

Reserved: 2026-08-12T20:53:46.380Z

Link: CVE-2026-73559

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-13T16:19:05.863

Modified: 2026-08-14T17:20:33.493

Link: CVE-2026-73559

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-13T15:09:02Z

Links: CVE-2026-73559 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-15T02:00:04Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-770

    Allocation of Resources Without Limits or Throttling