Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach vLLM Rust gRPC endpoint
-
ExploitSend Generate with output_logprobs and >128 output_candidates.token_ids
-
ImpactSampler raises fatal exception, EngineCore crashes (DoS)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
|
| Exploitation Conditions | Exploitation requires that the deployment expose the vLLM Rust gRPC frontend (the Generate / GenerateStream API) and that the attacker can send it a request. The concrete trigger is a request with ResponseOptions.output_logprobs = true and output_candidates.token_ids set to a list of more than 128 token IDs; the Rust converter lowers this into SamplingParams.logprob_token_ids without any length, vocabulary, or logprobs-count consistency check. Limiting factors: only the Rust gRPC path is affected (the Python SamplingParams validator and HTTP/OpenAI-style paths enforce the 128 cap, so those are not vulnerable), the engine must be running the V1 GPU logprob sampler path, and realistic risk depends on whether the gRPC endpoint is network-reachable to untrusted callers versus gated behind a deployment-layer credential. Impact is limited to availability (engine crash); no data access or code execution. |
| Impact | Signals point to a genuine but bounded availability risk. The impact is confirmed single-request denial of service - an uncaught sampler exception terminates EngineCore - with no confidentiality or integrity impact (VC:N/VI:N, VA:H). The input CVSS 4.0 vector (8.2) and the GHSA writeup conflict on exploitation difficulty: the official vector encodes AC:H/AT:P (high complexity, present attack requirement), but the advisory's own technical analysis and its suggested CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H describe a trivial, deterministic single-request trigger with no race, timing, or attacker-uncontrolled precondition - so AC:H/AT:P appears unjustified by the described mechanism and should be verified with the CNA. Authentication is ambiguous: PR:N applies if the Rust gRPC endpoint is network-reachable without a deployment-layer credential, but the advisory explicitly offers a conservative PR:L model where the surface is reachable only by already-authorized clients; no vector field resolves this, so the real priority depends on local network exposure. No EPSS score and no CISA KEV entry were provided, and no public exploit is identified in the input. Net: a real, easy-to-trigger DoS worth patching on the vuln.today 'this_week' cadence, but not an actively-exploited emergency; its practical severity hinges on whether the gRPC frontend is exposed to untrusted callers. |
| Exploit ScenarioDerived | An attacker able to reach a vLLM Rust gRPC frontend sends a single Generate or GenerateStream request with output_logprobs enabled and an output_candidates.token_ids list containing 129 or more IDs. The Rust converter lowers the oversized list into SamplingParams.logprob_token_ids without the Python MAX_LOGPROB_TOKEN_IDS=128 check, so the request enters execution and the GPU logprob sampler raises a fatal exception that EngineCore treats as a fatal engine error, crashing the engine. No public exploit is identified at time of analysis, though the advisory documents the exact triggering request. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 25, 2026
Remote denial of service in vLLM 0.22.0 up to but not including 0.24.0 allows remote attackers (CVSS PR:N) to crash EngineCore by sending a single Generate or GenerateStream request to the Rust gRPC frontend with output_logprobs enabled and more than 128 output_candidates.token_ids. The Rust converter copies those IDs into SamplingParams.logprob_token_ids without the Python-side 128-ID cap, vocabulary check, or logprobs-count consistency check, so the V1 GPU logprob sampler raises a fatal exception after execution begins. Only deployments exposing the Rust gRPC path on the vulnerable V1 sampler are affected; no public exploit identified at time of analysis, and the vuln.today priority is this_week.
RemediationAI
Upgrade vLLM to 0.24.0, the vendor-released patch that adds Rust-side validation of ResponseOptions.output_candidates.token_ids before the request reaches EngineCore; see GHSA-6pgw-f3pv-4h8q at https://github.com/vllm-project/vllm/security/advisories/GHSA-6pgw-f3pv-4h8q and the VulnCheck advisory at https://www.vulncheck.com/advisories/vllm-0.22.0-before-0.24.0-denial-of-service-via-grpc-output-candidates-token-ids. If immediate upgrade is not possible, restrict the Rust gRPC Generate and GenerateStream endpoint to trusted clients using network policy, an authenticating proxy, or firewall rules, and route untrusted inference through the Python/HTTP/OpenAI-style API, which enforces the 128-ID cap; these controls reduce exposure but do not fix the missing validation in the Rust converter. Because the issue is limited to availability and requires reachability of the gRPC frontend, prioritize internet-facing or broadly shared gRPC deployments for upgrade.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is an input-validation failure (CWE-20, with CWE-400/CWE-770 resource-limit aspects noted in the upstream advisory) in the Rust gRPC frontend for vLLM's Generate and GenerateStream APIs. The protobuf ResponseOptions.output_candidates carries a CandidateTokens selector; when output_logprobs is true, the Rust converter lowers output_candidates.token_ids directly into SamplingParams.logprob_token_ids. Python SamplingParams enforces MAX_LOGPROB_TOKEN_IDS = 128, range-checks IDs against the model vocabulary, and requires logprobs to equal the explicit ID count, but the Rust path performs none of these checks. The V1 GPU logprob sampler allocates a fixed (max_num_reqs, 128) StagedWriteTensor row and raises ValueError when more than 128 IDs reach add_request(); EngineCore treats that uncaught worker exception as fatal. The Python validator and HTTP/OpenAI-style request paths enforce the cap and are not vulnerable; the trigger requires the Rust gRPC endpoint and the V1 GPU logprob sampler path. CPE cpe:2.3:a:vllm-project:vllm:*:*:*:*:*:*:*:* identifies the PyPI vllm package.
Know when Vllm gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Single deterministic request over the network with no timing or interaction gives AV:N/AC:L/UI:N; PR:N assumes the gRPC endpoint is reachable by untrusted callers; availability-only engine crash yields A:H, C/I:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
vLLM from 0.22.0 before 0.24.0 contains a denial of service vulnerability that allows remote attackers to terminate EngineCore by bypassing logprob_token_ids limits in the Rust gRPC frontend. Attackers can send Generate or GenerateStream requests with output_logprobs enabled and more than 128 output_candidates.token_ids, triggering a fatal sampler exception that crashes the engine.
Technical POC Analysis
CWE-20 (Improper Input Validation); the reporter also suggests CWE-400 / CWE-770 for the resource-shape aspect.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A high-severity vulnerability in vLLM versions 0.22.0 to 0.23.x allows an unauthenticated remote attacker to crash the inference engine with a single request, causing service disruption for any AI application relying on vLLM for model serving. Leadership should prioritize remediation because affected deployments exposing the Rust gRPC frontend are vulnerable to denial-of-service attacks that can halt business-critical AI services, with no vendor patch currently available.
No vendor-released patch identified at time of analysis. Interim mitigations include disabling the Rust gRPC frontend or output_logprobs feature, restricting network access to the gRPC endpoint, and implementing request validation or rate limiting to block oversized output_candidates.token_ids.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
vLLM is a high-throughput and memory-efficient inference and serving engine for LLMs. Rated critical severity (CVSS 10.0
vllm-project vllm version v0.6.2 contains a vulnerability in the MessageQueue.dequeue() API function. Rated critical sev
Information exposure in vLLM inference engine versions 0.8.3 to before 0.14.1. Invalid image requests to the multimodal
Timing-based API key recovery in vLLM before 0.11.0rc2 can let remote attackers bypass bearer-token authentication on de
vLLM is a high-throughput and memory-efficient inference and serving engine for LLMs. Rated high severity (CVSS 7.5), th
Denial of service in the vLLM LLM inference server (all versions prior to 0.24.0) allows a remote client to crash the sh
vLLM before version 0.14.1 contains a server-side request forgery vulnerability in the MediaConnector class where incons
Out-of-memory worker crashes in vLLM can be induced by a single small compressed audio payload submitted to the /v1/chat
vLLM is a high-throughput and memory-efficient inference and serving engine for LLMs. Rated medium severity (CVSS 6.5),
GPU memory exhaustion in vLLM versions prior to 0.28.0 lets an attacker with low-privileged API access (PR:L in the CVSS
Multimodal inference requests to vLLM deployments running versions prior to 0.28.0 can trigger a process-level assertion
Uncontrolled resource consumption in vLLM's OpenAI-compatible completions endpoint allows any authenticated API client t
EUVD-2026-109434
GHSA-7r5r-rrjg-pf3c
NVD
CVE.org
EPSS
VulDB
Exploit-DB