Skip to main content

vLLM CVE-2026-105754

MEDIUM
Improper Input Validation (CWE-20)
2026-10-05 GitHub_M GHSA-ph72-cqr5-qpp7
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to disaggregated scale-out generate endpoint
  2. Exploit
    Craft forged multimodal features payload
  3. Execution
    Bypass renderer-contract rebinding validation
  4. Impact
    Terminate 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

pypi vllm fix: 0.30.0

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

Vendor (GitHub_M) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.6 HIGH

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.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:H/SC:N/SI:N/SA:N
Red Hat 6.5 MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

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
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 4 pypi packages depend on vllm (4 direct, 0 indirect)

Ecosystem-wide dependent count for version 0.30.0.

Threat Intelligence Overview

EPSS Score
0.3%
Top 82% exploitable
Prevalence
High
vLLM is a widely-deployed open-source LLM inference and serving engine
Threat Intel
1
1 source
Data Quality
4 sources
Confidence: Medium
🇯🇵JVN NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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

cpe:2.3:a:vllm-project:vllm:*:*:*:*:*:*:*:*

More in Vllm

View all
CVE-2025-32444 CRITICAL POC
10.0 Apr 30

vLLM is a high-throughput and memory-efficient inference and serving engine for LLMs. Rated critical severity (CVSS 10.0

CVE-2024-11041 CRITICAL POC
9.8 Mar 20

vllm-project vllm version v0.6.2 contains a vulnerability in the MessageQueue.dequeue() API function. Rated critical sev

CVE-2026-22778 CRITICAL POC
9.8 Feb 02

Information exposure in vLLM inference engine versions 0.8.3 to before 0.14.1. Invalid image requests to the multimodal

CVE-2025-59425 HIGH POC
7.5 Oct 07

Timing-based API key recovery in vLLM before 0.11.0rc2 can let remote attackers bypass bearer-token authentication on de

CVE-2025-30202 HIGH POC
7.5 Apr 30

vLLM is a high-throughput and memory-efficient inference and serving engine for LLMs. Rated high severity (CVSS 7.5), th

CVE-2026-54234 HIGH POC
7.5 Jul 06

Denial of service in the vLLM LLM inference server (all versions prior to 0.24.0) allows a remote client to crash the sh

CVE-2026-24779 HIGH POC
7.1 Jan 27

vLLM before version 0.14.1 contains a server-side request forgery vulnerability in the MediaConnector class where incons

CVE-2026-57173 MEDIUM POC
6.5 Sep 16

Out-of-memory worker crashes in vLLM can be induced by a single small compressed audio payload submitted to the /v1/chat

CVE-2025-46560 MEDIUM POC
6.5 Apr 30

vLLM is a high-throughput and memory-efficient inference and serving engine for LLMs. Rated medium severity (CVSS 6.5),

CVE-2026-69147 MEDIUM POC
6.5 Sep 16

GPU memory exhaustion in vLLM versions prior to 0.28.0 lets an attacker with low-privileged API access (PR:L in the CVSS

CVE-2026-105753 MEDIUM POC
6.5 Oct 05

Multimodal inference requests to vLLM deployments running versions prior to 0.28.0 can trigger a process-level assertion

CVE-2026-73559 MEDIUM POC
6.5 Aug 13

Uncontrolled resource consumption in vLLM's OpenAI-compatible completions endpoint allows any authenticated API client t

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy