Skip to main content

vLLM EUVDEUVD-2026-84216

| CVE-2026-94622 HIGH
Uncaught Exception (CWE-248)
2026-09-21 disclosure@vulncheck.com GHSA-4h5x-w852-6g2x
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 NIXL-disaggregated vLLM endpoint
  2. Delivery
    Send request with incomplete kv_transfer_params
  3. Exploit
    Trigger uncaught KeyError in EngineCore scheduling
  4. Execution
    Decode engine terminates
  5. Impact
    All routed inference requests fail until manual restart

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Exception handling completeness
Exploitation Conditions

Requires the target vLLM instance (version through 0.29.0) to be deployed in prefill/decode disaggregated mode using the NIXL connector - a non-default serving configuration. Given that mode, exploitation needs only network access to the inference API and a single request carrying an incomplete kv_transfer_params dictionary (missing required remote_* fields such as remote_block_ids/remote_engine_id/remote_request_id/remote_host/remote_port); no authentication (PR:N) and no user interaction are needed. The limiting factor is the deployment mode itself: standard single-node vLLM without NIXL disaggregation does not process kv_transfer_params in this path and is not exposed. Impact is a full decode-engine crash requiring manual restart to recover.

Impact

The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N with VA:H, C/I both N) is internally consistent and credible: a remote, unauthenticated, low-complexity request crashes the decode EngineCore, and the only impact is availability - no confidentiality or integrity loss. The 8.7 score is driven purely by the availability hit plus the trivial preconditions. However, this raw score materially overstates fleet-wide risk because exploitation is GATED on a specific non-default deployment mode: the NIXL connector configured for prefill/decode disaggregated serving. Standard single-node vLLM deployments are not exposed. No EPSS score, no CISA KEV listing, and no standalone public exploit were provided - VulnCheck disclosed it and a fix PR (#54807) with regression tests exists, but there is no evidence of active exploitation. So this is a real, easy-to-trigger, unauthenticated crash-until-manual-restart DoS for the subset of operators running disaggregated NIXL setups, and should be prioritized by them; for everyone else the practical risk is near zero. Signals are consistent (no CVSS-vs-description conflict), the main caveat is the missing EPSS/KEV/POC data, which means likelihood-of-exploitation is inferred from the low attack complexity rather than confirmed telemetry.

Exploit ScenarioDerived

An attacker with network reach to a vLLM instance running disaggregated prefill/decode with the NIXL connector sends an inference request whose kv_transfer_params dict is deliberately incomplete (e.g. only {"do_remote_prefill": true}, omitting remote_block_ids/remote_engine_id/remote_host/etc.). add_new_req_to_recv dereferences the missing keys, raising an uncaught KeyError inside EngineCore scheduling that terminates the decode engine, so every routed request fails until an operator manually restarts the service. No public exploit code was identified, but the trigger is a single malformed request requiring no authentication or user interaction.

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

Denial of service in vLLM through 0.29.0 allows an unauthenticated remote attacker to crash the decode engine by sending a single inference request whose kv_transfer_params dictionary is incomplete, for example containing only {"do_remote_prefill": true} without the required remote_block_ids, remote_engine_id, remote_request_id, remote_host, and remote_port fields. The malformed metadata raises an uncaught KeyError inside EngineCore scheduling (CWE-248) during add_new_req_to_recv, terminating the decode engine and causing every subsequently routed request to fail until an operator manually restarts it, yielding a vendor CVSS 4.0 score of 8.7 (VA:H, C/I both N). Exposure is limited to deployments running prefill/decode disaggregated mode with the NIXL connector, which is a non-default serving configuration; standard single-node vLLM never processes kv_transfer_params on this path. No public exploit code and no confirmed active exploitation were identified at time of analysis, though the upstream fix and regression tests are public in PR #54807.

RemediationAI

Primary remediation is to apply the upstream NIXL hardening in PR #54807 (https://github.com/vllm-project/vllm/pull/54807), which validates kv_transfer_params against the required remote_block_ids, remote_engine_id, remote_request_id, remote_host, and remote_port fields and validates block-id structure and int32 ranges before scheduling; note that this is an upstream fix (PR/commit) and a released patched version was not independently confirmed, so operators should verify whether a tagged vLLM release includes it before relying on a version upgrade alone. If patching is not immediately possible, the most effective compensating control is to stop running prefill/decode disaggregated mode with the NIXL connector - revert to a non-disaggregated, single-instance serving topology - which removes the vulnerable code path entirely at the cost of losing the throughput/latency benefits of separating prefill and decode. Restricting network access to the inference API (authenticating proxy, mTLS, or network policy/allowlist limited to trusted clients) reduces the attack surface but does not eliminate it for any client that can reach the endpoint, and note that client-side validation of kv_transfer_params is not a control because attackers craft their own requests. As a resilience measure, wrap the decode engine in a supervisor or orchestration policy that automatically restarts crashed workers and drains/retries queued requests; this reduces the manual-restart outage window but still causes request failures during each crash, so it should be treated as damage limitation rather than a fix. Also track the VulnCheck advisory (https://www.vulncheck.com/advisories/vllm-through-0.29.0-denial-of-service-via-incomplete-nixl-kv-transfer-metadata) and the vLLM repository for confirmation of a released patched version.

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

The flaw lives in vLLM's NIXL KV-connector, the component that shuttles key/value cache blocks between separate prefill and decode engines in disaggregated serving. In that architecture a client request carries a kv_transfer_params metadata dictionary that tells the decode-side EngineCore which remote blocks, engine, request, host, and port to pull KV data from; NixlConnectorMetadata.add_new_req_to_recv (vllm/distributed/kv_transfer/kv_connector/v1/nixl/metadata.py, roughly lines 294-312 in v0.29.0) previously dereferenced those keys directly. Because CWE-248 (uncaught exception) applies, a dict lacking any required key - or including only a partially complete set - triggers a KeyError that is never caught, propagates out of the scheduling path, and kills the decode EngineCore, so all in-flight and subsequent routed requests fail until a manual restart. The upstream fix in PR #54807 adds an explicit _REQUIRED_RECV_FIELDS allowlist check in add_new_req_to_recv that logs and skips (rather than registers) malformed requests, plus a _valid_block_ids helper enforcing structure, non-negativity, non-bool int typing, and int32 bounds (2**31-1) to match the np.int32 dtype used by _compute_desc_ids, and a matching range check in nixl/base_worker.py's _compute_desc_ids. Regression tests confirm requests with fully missing or partially complete remote fields are now dropped instead of crashing the engine. The authoritative assessment maps this to CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, consistent with the vendor 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N, VA:H, VC/VI:N): a remote, unauthenticated, low-complexity availability-only attack whose sole precondition is the disaggregated NIXL deployment mode.

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

Remote unauthenticated single malformed request (AV:N/AC:L/PR:N/UI:N) crashes the engine with availability-only impact (A:H); no confidentiality or integrity effect and no scope change.

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 versions through 0.29.0 contain a denial of service vulnerability in the NIXL connector's metadata handling for prefill/decode disaggregated deployments. Attackers can send requests with incomplete kv_transfer_params dictionary entries to trigger an uncaught KeyError in EngineCore scheduling, causing the decode engine to terminate and making all routed requests fail until manual restart.

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 contain a high-severity flaw that can take down inference services in certain configurations. Organizations using disaggregated prefill/decode mode with the NIXL connector face potential denial-of-service that requires manual recovery, disrupting AI-driven operations. While no public exploit identified at time of analysis, the lack of a patch means affected teams must act now to limit exposure and prepare for rapid remediation.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include restricting network access to vLLM inference endpoints to trusted sources, disabling disaggregated prefill/decode mode with the NIXL connector if not essential, implementing API gateway validation to reject malformed kv_transfer_params, and monitoring for engine crashes with automated restart procedures.

Threat Intelligence Overview

EPSS Score
0.4%
Top 62% exploitable
Prevalence
High
vLLM is a widely deployed OSS LLM inference engine, though NIXL disaggregation is non-default
Data Quality
7 sources
Confidence: High
EUVD 🇯🇵JVN NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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