vLLM
CVE-2026-105754
MEDIUM
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to disaggregated scale-out generate endpoint
-
ExploitCraft forged multimodal features payload
-
ExecutionBypass renderer-contract rebinding validation
-
ImpactTerminate shared EngineCore or poison cross-request encoder cache
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
|
| Exploitation Conditions | Requires that vLLM be deployed in the disaggregated scale-out (token-in-token-out) serving mode and that the attacker can reach the /inference/v1/generate endpoint - this is a non-default deployment configuration, not a standard single-node serve. Per CVSS PR:L, low-privilege authenticated access to that endpoint is required. The denial-of-service variant needs only a forged multimodal features payload (mismatched parallel fields, non-positive placeholder length, or forged grid geometry) to terminate the shared EngineCore. The cache poisoning/retrieval variant has an additional precondition: the attacker must know or be able to induce the victim's content hash to forge matching cache identifiers, which limits it to targeted rather than opportunistic abuse. Multi-tenancy on the shared EngineCore is what makes the DoS and cross-request cache impacts meaningful. |
| Impact | This is a moderate-priority, access-gated availability risk with underappreciated confidentiality/integrity dimensions. The vendor CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H, base 6.5) scores only the denial-of-service: forged grid geometry, field types, or non-positive placeholder lengths reliably terminate the shared EngineCore, affecting all co-tenant requests. However, the description explicitly adds two impacts the official vector omits: forged cache hashes can poison or RETRIEVE cross-request encoder-cache state (a confidentiality AND integrity impact, consistent with the 'Information Disclosure' tag), and dropped sparse placeholder masks can alter replayed transport semantics. The C:N/I:N in the vendor vector therefore conflicts with the narrative - treat this as a DoS-plus-information-disclosure flaw, not pure DoS. Exploitation status: no public exploit identified at time of analysis - the only source-code evidence is the fixing patch (PR 51898), not POC code; there is no CISA KEV listing and no EPSS score was provided, so widespread opportunistic exploitation is unproven. The real-world attack surface is narrowed by two factors: it requires low-privilege authenticated access (PR:L) to an internal endpoint, and it only exists in the non-default disaggregated scale-out deployment path. The cache poison/retrieve primitive further requires the attacker to know or induce the victim's content hash, which is a meaningful complexity barrier. Net: credible priority for operators running vLLM disaggregated serving in multi-tenant settings, lower concern for single-tenant or non-disaggregated deployments. |
| Exploit ScenarioDerived | A low-privilege tenant with access to the internal disaggregated-serving generate endpoint submits a request whose features.kwargs_data, mm_hashes, and mm_placeholders fields are crafted with mismatched lengths or a non-positive placeholder length, crashing the shared EngineCore and denying service to all co-located requests. A more targeted attacker who can learn or induce another tenant's content hash supplies forged cache identifiers to poison or read back that victim's encoder-cache state. No public exploit code is identified; only the fixing patch is available. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 05, 2026
Improper input validation in vLLM's disaggregated scale-out (token-in-token-out) serving path lets an authenticated low-privilege remote caller send forged multimodal request fields to the /inference/v1/generate endpoint and terminate the shared EngineCore process. Affected are vLLM releases prior to 0.30.0 that are explicitly deployed in the disaggregated scale-out mode; attacks on the cache variant additionally require the attacker to know or induce a victim's content hash so that forged cache identifiers (mm_hashes) match, enabling cross-request encoder-cache poisoning or retrieval and, in the same input-validation failure, corrupted replayed transport semantics from dropped sparse placeholder masks. Both confidentiality and integrity impact are therefore low-severity and preconditional, while availability impact on the shared engine is high; the CVSS 3.1 vector is AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:H, and no public exploit code or confirmed active exploitation was identified at time of analysis.
RemediationAI
Upgrade to vLLM 0.30.0 or later; the vendor-released patch is version 0.30.0 (https://github.com/vllm-project/vllm/releases/tag/v0.30.0), delivered via PR #51898 and commit 1970f3ed4be7fa8620e4ddc4a12c36a8384cfc27, and it enforces non-negative placeholder offsets, strictly positive placeholder lengths, modality/length consistency across mm_hashes, mm_placeholders and kwargs_data, globally sorted non-overlapping ranges, and bounds checks against the token_ids prompt length. If an immediate upgrade is not possible, take compensating actions that match the preconditions of the attack: stop exposing /inference/v1/generate to untrusted or multi-tenant callers - put it behind ingress authentication restricted to a trusted set of internal clients and network segmentation, accepting that PR:L still means any caller with endpoint credentials can trigger the crash, so this is a risk reduction and not a fix; or stop running the disaggregated scale-out (token-in-token-out) serving mode and fall back to the standard single-node serve, whose trade-off is loss of the scale-out throughput and disaggregation benefits the deployment was built around. To blunt the cache-poisoning/retrieval precondition, per-tenant or periodically rotated cache salts reduce the attacker's ability to force a known content hash, but note that rotating the salt invalidates existing cached encoder state and forces recomputation; per-tenant EngineCore isolation limits blast radius from the shared-process availability loss but increases operating cost. Review the vendor advisory (https://github.com/vllm-project/vllm/security/advisories/GHSA-ph72-cqr5-qpp7) for any updated guidance before relying on workarounds.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-20 (Improper Input Validation) in the Pydantic-based wire protocol used by vLLM's scale-out, token-in-token-out entrypoint (vllm/entrypoints/scale_out/token_in_token_out/protocol.py). In the vulnerable code the caller-supplied MultiModalFeatures object accepted arbitrary tensors in features.kwargs_data, cache identifiers in features.mm_hashes, and ranges in features.mm_placeholders without being rebound to the active model renderer contract, and PlaceholderRangeInfo permitted unbounded offsets and zero-or-negative lengths. The upstream fix (PR #51898 / commit 1970f3ed4be7fa8620e4ddc4a12c36a8384cfc27) hardens the models: offset must be ge=0, length must be gt=0, mm_hashes/mm_placeholders/kwargs_data must cover the same modality set with matching per-modality lengths, placeholder ranges must be globally sorted and non-overlapping, and every placeholder must fit within the token_ids prompt window. It also adds regression tests for mismatched parallel fields, overlapping placeholders, and placeholders outside the prompt. The class of defect is that a remote peer could shape the multimodal request structure and cache identity of another request handled by the same engine, rather than a memory-safety flaw in the model runtime.
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
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Network endpoint with low-privilege auth (PR:L) and trivially crafted DoS payload (AC:L, A:H); C:L/I:L added for cache retrieval/poisoning the vendor vector omits.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
vLLM is an inference and serving engine for large language models. Prior to 0.30.0, the /inference/v1/generate endpoint in the disaggregated scale-out path accepts caller-supplied tensors in the features.kwargs_data field, cache identifiers in the features.mm_hashes field, ranges in the features.mm_placeholders field, and wire-selected multimodal field processors without rebinding them to the active model renderer contract. Forged grid geometry, field types, or non-positive placeholder lengths can terminate the shared EngineCore; when an attacker knows or can induce a victim's content hash, forged cache hashes can poison or retrieve cross-request encoder-cache state; and dropped sparse placeholder masks can alter replayed transport semantics. This issue is fixed in version 0.30.0.
Blast Radius
ecosystem impact- 4 pypi packages depend on vllm (4 direct, 0 indirect)
Ecosystem-wide dependent count for version 0.30.0.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Affected Products (CPE)CVE.org
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
GHSA-ph72-cqr5-qpp7
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB