Skip to main content

vLLM CVE-2026-94626

| EUVDEUVD-2026-84220 HIGH
Memory Allocation with Excessive Size Value (CWE-789)
2026-09-21 disclosure@vulncheck.com GHSA-hq63-vm56-2666
8.7
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

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

  1. Access
    Reach exposed vLLM completion endpoint
  2. Delivery
    Send request with oversized tp_size in kv_transfer_params
  3. Exploit
    tp_size passes unvalidated into KV-transfer allocation
  4. Execution
    Unbounded memory allocation exhausts host RAM
  5. Impact
    Kernel OOM-kills decode worker (service DoS)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory allocation limits
Exploitation Conditions

Requires the vLLM instance to be running in a prefill/decode (P/D) disaggregated deployment, where kv_transfer_params is honored on the OpenAI-compatible completion endpoints (/v1/completions, /v1/chat/completions). The attacker must be able to send requests to that endpoint (no authentication or user interaction is required per PR:N/UI:N), and supplies an arbitrary large tp_size (the fix rejects values ≤0, non-integers, and values above _MAX_KV_TRANSFER_TP_SIZE). What limits exploitation: standard single-node/non-disaggregated vLLM deployments that do not process kv_transfer_params are not affected, and endpoints that are network-restricted or gated behind an authenticating proxy reduce exposure; impact is limited to availability (decode-worker OOM-kill / service disruption), with no data disclosure or code execution.

Impact

The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H, score 8.7) describes a purely availability-impacting flaw reachable over the network without authentication or user interaction - confidentiality and integrity impacts are explicitly N. This is consistent with CWE-789 (memory allocation with excessive size value) and the description: an unvalidated tp_size drives unbounded allocation that OOM-kills the decode worker. The 'RCE' input tag is contradicted by every other signal - there is no code-execution, integrity, or confidentiality impact anywhere in the vector or description; this is a denial-of-service issue and the tag should be treated as mislabeled. No EPSS score, no CISA KEV entry, and no standalone exploit were provided; the referenced PR #51137 contains the fix plus validation unit tests but not a weaponized POC, so this is 'no public exploit identified at time of analysis.' The high CVSS score is driven by ease of the network-facing DoS, but real-world priority is materially narrowed because exploitation requires a prefill/decode disaggregated deployment (a non-default, advanced serving topology), so this is a high-CVSS/moderate-real-risk issue for most operators and a genuine availability concern only for the subset running P/D disaggregation with exposed completion endpoints.

Exploit ScenarioDerived

An attacker who can reach a vLLM OpenAI-compatible /v1/completions or /v1/chat/completions endpoint of a prefill/decode disaggregated deployment sends a normal-looking request whose kv_transfer_params includes an enormous tp_size (e.g. 20,000,000). vLLM fails to validate the value and attempts a correspondingly huge memory allocation, exhausting RAM and causing the kernel to OOM-kill the decode worker, taking down inference. No exploit code is public, but the fix PR's tests demonstrate the exact malicious payload, and the network-facing, unauthenticated, low-complexity nature makes it trivial to reproduce.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 21, 2026

Memory exhaustion in vLLM through 0.29.0 lets remote, unauthenticated attackers crash the inference service by supplying an arbitrary 'tp_size' value inside the 'kv_transfer_params' field of requests to the OpenAI-compatible completion endpoints. Because kv_transfer_params is honored only when the server runs in a prefill/decode (P/D) disaggregated deployment using the NIXL KV-transfer connector, the attacker causes unbounded memory allocation in the decode worker that ends in a kernel OOM-kill and full loss of service availability; confidentiality and integrity are unaffected. No public exploit code was identified at time of analysis and there is no CISA KEV listing, but the flaw is trivially reachable over the network (CVSS 4.0 8.7, AV:N/AC:L/PR:N/UI:N/VA:H), and an upstream fix exists as pull request 51137.

RemediationAI

Upstream fix available (PR/commit); released patched version not independently confirmed - the vendor did not publish a tagged fix release in the supplied data, so the definitive remediation is to apply the validation change merged in https://github.com/vllm-project/vllm/pull/51137 (which introduces _MAX_KV_TRANSFER_TP_SIZE / _MAX_KV_TRANSFER_PP_SIZE bounds, rejects tp_size and pp_size of zero or below and non-integers, and constrains remote_port to 1-65535) and to track https://github.com/vllm-project/vllm for the next tagged release after 0.29.0; the VulnCheck advisory at https://www.vulncheck.com/advisories/vllm-through-0.29.0-memory-exhaustion-via-unvalidated-nixl-tp-size provides the vendor-facing guidance. Until a patched build is deployed, the most effective compensating control is to disable the P/D disaggregated deployment path entirely (drop the NIXL/KV-transfer connector configuration and run a single-instance topology) - this eliminates the attack surface completely but forfeits disaggregation's throughput and scaling benefits. If disaggregation must stay in production, place the OpenAI-compatible endpoints (/v1/completions, /v1/chat/completions, responses) behind an authenticating reverse proxy or allow-list so that only trusted internal callers can reach them and unauthorized remote requests cannot carry a hostile tp_size, accepting the added latency and integration overhead of proxy-based auth. As defense in depth, run decode workers under a cgroup memory limit sized to realistic KV-cache needs so an oversized allocation kills only the constrained worker rather than destabilizing the host, and configure process supervision to restart the decode worker automatically - though this trades availability for fast recovery rather than preventing the initial OOM-kill. Since no public exploit code was identified at time of analysis, prioritize the fix based on whether your deployment actually runs disaggregated kv_transfer_params.

Affected VersionsENISA

vllm 0 ≤0.29.0

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

vLLM's disaggregated prefill/decode architecture separates prompt processing (prefill workers) from token generation (decode workers) and shuttles KV-cache blocks between them over a connector such as NIXL. Client-supplied 'kv_transfer_params' - including 'tp_size' (tensor-parallel size), 'pp_size', and 'remote_port' - are parsed from the OpenAI-compatible request bodies at the API boundary and forwarded into the transfer layer, where the values are used to size buffers and allocate memory (see vllm/distributed/kv_transfer/kv_connector/utils.py lines 569-573 and vllm/distributed/kv_transfer/kv_connector/v1/nixl/metadata.py line 277 in the v0.29.0 tree). The root-cause class is CWE-789 (Memory Allocation with Excessive Size Value): the code trusts an attacker-controlled integer as a size multiplier without range, type, or sign checks, so a very large tp_size drives allocation past available RAM. The upstream remediation adds a shared validate_kv_transfer_params helper with bounds _MAX_KV_TRANSFER_TP_SIZE and _MAX_KV_TRANSFER_PP_SIZE and enforces them on CompletionRequest, ChatCompletionRequest, and ResponsesRequest, rejecting values of zero or below, non-integer values, and remote_port outside the valid 1-65535 range. Note that although the supplied tags include 'RCE', the description, CWE-789 classification, and the independent assessment (C:N/I:N/A:H) all support a pure denial-of-service/availability impact rather than code execution, so the tag should be treated as unreliable.

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 (vulncheck) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Network-reachable, unauthenticated, low-complexity request causes worker OOM-kill; availability-only impact (A:H) with no confidentiality/integrity effect, matching CWE-789 and the vendor 4.0 vector.

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

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

vLLM through 0.29.0 fails to validate the tp_size parameter in kv_transfer_params on OpenAI-compatible completion endpoints, allowing attackers to allocate unbounded memory. Attackers can supply arbitrary tp_size values in prefill/decode disaggregated deployments to exhaust memory and trigger kernel OOM-kill of the decode worker process.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 3 pypi packages depend on vllm (3 direct, 0 indirect)

Ecosystem-wide dependent count for version 0.30.0.

Executive ViewAI

Why It Matters

vLLM versions through 0.29.0 are vulnerable to a memory exhaustion flaw that allows remote, unauthenticated attackers to crash the inference service, causing complete loss of availability. This affects organizations running vLLM in a prefill/decode disaggregated deployment with the NIXL KV-transfer connector; no public exploit identified at time of analysis. Leadership should prioritize remediation because the vulnerability is trivially reachable over the network and can lead to prolonged service outages, though confidentiality and integrity remain unaffected.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: disable the NIXL KV-transfer connector or P/D disaggregated mode; restrict network access to the OpenAI-compatible completion endpoints; implement input validation to reject unexpected 'tp_size' values in 'kv_transfer_params'; apply upstream fix pull request 51137 if feasible; monitor for OOM-kill events.

Threat Intelligence Overview

EPSS Score
0.4%
Top 62% exploitable
Prevalence
High
vLLM is a widely deployed open-source LLM inference/serving engine
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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 HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

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

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

CVE-2026-22773 MEDIUM POC
6.5 Jan 10

Vllm versions up to 0.12.0 is affected by allocation of resources without limits or throttling (CVSS 6.5).

CVE-2026-73557 MEDIUM POC
6.3 Aug 13

Race condition in vLLM's prompt embedding loader allows concurrent API requests to bypass the sparse tensor invariant gu

Vendor StatusVendor

SUSE

Severity: Important

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