Description
vLLM before 0.29.0 accepts user-controlled stop_token_ids on the OpenAI-compatible POST /v1/completions and POST /v1/chat/completions endpoints but validates only that the values are integers, not that each token id is within the model vocabulary/logits range. When min_tokens > 0, the stop token ids are used as logits indices to suppress stop tokens, so an out-of-range id reaches a CUDA indexing operation (index_put_) and triggers a device-side assertion. An authenticated API user can send a single malformed completion request that returns 500 Internal Server Error and puts EngineCore into a fatal state, causing subsequent requests to fail until the service is restarted (denial of service).
Published: 2026-09-26
Score: 7.1 High
EPSS: n/a
KEV: No
Impact: Denial of Service
Action: Patch now
AI Analysis

Impact

The vulnerability is an improper validation of array indexes. vLLM versions before 0.29.0 accept user‑controlled stop_token_ids on the OpenAI‑compatible POST /v1/completions and POST /v1/chat/completions endpoints. The code checks only that the submitted values are integers, but does not verify that each token id lies within the vocabulary or logits range. When an attacker supplies an out‑of‑range id and min_tokens > 0, the service attempts to use that id as a logits index, triggering a CUDA indexing operation that fails with a device‑side assertion. The result is a 500 Internal Server Error that puts EngineCore into a fatal state. Subsequent requests fail until the service is restarted, effectively denying service.

Affected Systems

Affected deployments are those running any vLLM version earlier than 0.29.0 from the vllm‑project. The flaw manifests through the OpenAI‑compatible API endpoints, so any client able to send a POST request to /v1/completions or /v1/chat/completions with a crafted stop_token_ids payload can trigger the issue. The vulnerability exists only in deployments that expose these endpoints and that are running the vulnerable code base. No specific hardware or cluster configurations are mentioned as prerequisites, but the crash involves a CUDA device, implying that the targeted environment uses GPU acceleration.

Risk and Exploitability

The CVSS score is 7.1 indicating a medium‑to‑high severity. EPSS is not available, and the weakness is not listed in CISA KEV. The attack requires an authenticated API user because the endpoint accepts authenticated requests. The design of the vulnerability means that a single malformed request can bring the entire EngineCore process down, making it an actionable denial‑of‑service vector. Based on the description, the likely attack vector is an authenticated internal API call. There is no evidence of additional credential or network exploitation required.

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

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to v0.29.0 or newer.
  • Restrict API access to authorized users and apply the principle of least privilege.
  • Implement input validation to reject stop_token_ids that are outside the valid range before they reach the logits array.
  • Monitor logs for 500 errors and restart EngineCore automatically or manually after an incident.

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

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 26 Sep 2026 16:15:00 +0000

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

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

Type Values Removed Values Added
Description vLLM before 0.29.0 accepts user-controlled stop_token_ids on the OpenAI-compatible POST /v1/completions and POST /v1/chat/completions endpoints but validates only that the values are integers, not that each token id is within the model vocabulary/logits range. When min_tokens > 0, the stop token ids are used as logits indices to suppress stop tokens, so an out-of-range id reaches a CUDA indexing operation (index_put_) and triggers a device-side assertion. An authenticated API user can send a single malformed completion request that returns 500 Internal Server Error and puts EngineCore into a fatal state, causing subsequent requests to fail until the service is restarted (denial of service).
Title vLLM before 0.29.0 Denial of Service via out-of-range stop_token_ids
First Time appeared Vllm
Vllm vllm
Weaknesses CWE-129
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:23.312Z

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

Link: CVE-2026-100654

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

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

Link: CVE-2026-100654

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

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

Weaknesses
  • CWE-129

    Improper Validation of Array Index