Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach NIXL-disaggregated vLLM endpoint
-
DeliverySend request with incomplete kv_transfer_params
-
ExploitTrigger uncaught KeyError in EngineCore scheduling
-
ExecutionDecode engine terminates
-
ImpactAll 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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 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
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
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.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
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- 3 pypi packages depend on vllm (3 direct, 0 indirect)
Ecosystem-wide dependent count for version 0.30.0.
Executive ViewAI
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.
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
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
vLLM is a high-throughput and memory-efficient inference and serving engine for LLMs. Rated high severity (CVSS 7.5), th
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
Vllm versions up to 0.12.0 is affected by allocation of resources without limits or throttling (CVSS 6.5).
Race condition in vLLM's prompt embedding loader allows concurrent API requests to bypass the sparse tensor invariant gu
EUVD-2026-84216
GHSA-4h5x-w852-6g2x
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB