CVE-2026-94623: vLLM: NIXL multi-prompt assertion crash causes DoS

HIGH
Published September 21, 2026
CISO Take

vLLM through 0.29.0 has an unauthenticated denial-of-service flaw in the NIXL connector used for prefill/decode disaggregated serving. A single network request containing multiple prompts of different lengths triggers an assertion failure that kills the decode worker until it is manually restarted. The CVSS score is 7.5 (availability impact only; no confidentiality or integrity loss). Real-world urgency is moderate: EPSS is 0.63% (top 52%), there is no public exploit, no Nuclei template, it is not in CISA KEV, and CISA SSVC says TRACK. Exposure is limited to teams running disaggregated prefill/decode with NIXL, so first inventory which clusters use that mode. Then apply the upstream fix (PR #51505) once it is released in a version above 0.29.0, and keep the completions endpoint behind authentication and rate limiting until then.

Sources:NVDEPSSATLASCISA SSVCVulnCheck advisoryGitHub (vllm-project/vllm PR #51505)

What is the risk?

Overall risk is medium-high for affected deployments and low for the general vLLM install base. The vulnerability is network-reachable, needs no privileges or user interaction, and has low complexity (CVSS 7.5), but it affects availability only. Exploitation likelihood is low-to-moderate: EPSS 0.00627, no known public exploit, no KEV listing, and SSVC TRACK. The risk rises sharply if the OpenAI-compatible API is exposed to untrusted networks or if the disaggregated decode tier is a single point of failure for a production inference service. The vulnerable code path only runs when the NIXL KV-transfer connector is enabled.

How does the attack unfold?

Initial Access
Attacker reaches a network-exposed vLLM OpenAI-compatible completions endpoint backed by a NIXL disaggregated deployment.
AML.T0049
Exploitation
Attacker submits a completion request with multiple prompts of varying lengths, causing block count validation to fail in _apply_prefix_caching.
AML.T0040
Impact
The assertion failure terminates the decode worker, and the inference service stays unavailable until it is restarted.
AML.T0029

What systems are affected?

PackageEcosystemVulnerable RangePatched
vLLMpip—No patch
96.0K94 dependentsPushed 5d ago27% patched~37d to patchFull package profile →

Do you use vLLM? You're affected.

How severe is it?

CVSS 3.1
7.5 / 10
EPSS
0.6%
chance of exploitation in 30 days
Higher than 50% of all CVEs
Exploitation Status
No known exploitation
Sophistication
Trivial

What is the attack surface?

AVACPRUISCIA
AVNetwork
ACLow
PRNone
UINone
SUnchanged
CNone
INone
AHigh

What should I do?

1 step
  1. 1) Inventory vLLM deployments and identify those using the NIXL connector in disaggregated prefill/decode mode; versions up to and including 0.29.0 are affected. 2) Upgrade to a vLLM release that includes the fix from PR #51505 (https://github.com/vllm-project/vllm/pull/51505) as soon as one is available. 3) Until patched, place the completions API behind an authenticated gateway, restrict network access to trusted clients, and apply rate limiting. 4) Consider rejecting or normalizing completion requests that contain multiple prompts (batched prompt lists) at the gateway if the application does not need them. 5) Run decode workers under a supervisor (Kubernetes, systemd) with automatic restart and health checks, and add redundant decode replicas. 6) Detection: alert on decode worker crashes, AssertionError traces mentioning _apply_prefix_caching, repeated worker restarts, and unusual multi-prompt completion requests from a single source.

What does CISA's SSVC say?

DecisionTrack
Exploitationnone
AutomatableYes
Technical Impactpartial

Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.

How is it classified?

Which compliance frameworks are affected?

This CVE is relevant to:

EU AI Act
Article 15-Accuracy, robustness and cybersecurity
ISO 42001
A.6.2.6-AI system operation and monitoring
NIST AI RMF
MANAGE 2.3-Procedures to respond to and recover from unknown risksMEASURE 2.7-AI system security and resilience evaluated
OWASP LLM Top 10
LLM10:2025-Unbounded Consumption

Frequently Asked Questions

What is CVE-2026-94623?

vLLM through 0.29.0 has an unauthenticated denial-of-service flaw in the NIXL connector used for prefill/decode disaggregated serving. A single network request containing multiple prompts of different lengths triggers an assertion failure that kills the decode worker until it is manually restarted. The CVSS score is 7.5 (availability impact only; no confidentiality or integrity loss). Real-world urgency is moderate: EPSS is 0.63% (top 52%), there is no public exploit, no Nuclei template, it is not in CISA KEV, and CISA SSVC says TRACK. Exposure is limited to teams running disaggregated prefill/decode with NIXL, so first inventory which clusters use that mode. Then apply the upstream fix (PR #51505) once it is released in a version above 0.29.0, and keep the completions endpoint behind authentication and rate limiting until then.

Is CVE-2026-94623 actively exploited?

No confirmed active exploitation of CVE-2026-94623 has been reported, but organizations should still patch proactively.

How to fix CVE-2026-94623?

1) Inventory vLLM deployments and identify those using the NIXL connector in disaggregated prefill/decode mode; versions up to and including 0.29.0 are affected. 2) Upgrade to a vLLM release that includes the fix from PR #51505 (https://github.com/vllm-project/vllm/pull/51505) as soon as one is available. 3) Until patched, place the completions API behind an authenticated gateway, restrict network access to trusted clients, and apply rate limiting. 4) Consider rejecting or normalizing completion requests that contain multiple prompts (batched prompt lists) at the gateway if the application does not need them. 5) Run decode workers under a supervisor (Kubernetes, systemd) with automatic restart and health checks, and add redundant decode replicas. 6) Detection: alert on decode worker crashes, AssertionError traces mentioning _apply_prefix_caching, repeated worker restarts, and unusual multi-prompt completion requests from a single source.

What systems are affected by CVE-2026-94623?

This vulnerability affects the following AI/ML architecture patterns: model serving, LLM inference clusters, prefill/decode disaggregated serving, OpenAI-compatible API gateways, RAG pipelines, agent frameworks.

What is the CVSS score for CVE-2026-94623?

CVE-2026-94623 has a CVSS v3.1 base score of 7.5 (HIGH). The EPSS exploitation probability is 0.63%.

What is the AI security impact?

Affected AI Architectures

model servingLLM inference clustersprefill/decode disaggregated servingOpenAI-compatible API gatewaysRAG pipelinesagent frameworks

MITRE ATLAS Techniques

AML.T0029Denial of AI Service
AML.T0040AI Model Inference API Access
AML.T0049Exploit Public-Facing Application

Compliance Controls Affected

EU AI Act: Article 15
ISO 42001: A.6.2.6
NIST AI RMF: MANAGE 2.3, MEASURE 2.7
OWASP LLM Top 10: LLM10:2025

What are the technical details?

Original Advisory

vLLM through 0.29.0 contains a denial of service vulnerability in the NIXL connector's prefix caching implementation that fails to properly validate block counts across multi-prompt completion requests in prefill/decode disaggregated deployments. Attackers can trigger an assertion failure in NixlBaseConnectorWorker._apply_prefix_caching by submitting completion requests with multiple prompts of varying lengths, causing the decode worker to terminate and become unavailable until restarted.

Exploitation Scenario

An attacker finds an exposed or weakly authenticated vLLM OpenAI-compatible endpoint backed by a disaggregated prefill/decode deployment using NIXL. They send a /v1/completions request with a prompt array holding several prompts of different lengths. Block counts are not validated across the prompts, the assertion in _apply_prefix_caching fails, and the decode worker exits. By repeating the request each time the worker restarts, the attacker keeps the inference service degraded or offline, disrupting dependent AI applications and agent workflows.

Weaknesses (CWE)

CWE-617 — Reachable Assertion: The product contains an assert() or similar statement that can be triggered by an attacker, which leads to an application exit or other behavior that is more severe than necessary.

  • [Implementation] If the assertion statement is required (e.g., for security or reliability), change the invoking code to avoid the conditions that trigger the assertion.
  • [Implementation] Consider changing the assertion to some other less "fatal" error. This might not be easy to implement, since other code may be needed to handle the error.

Source: MITRE CWE corpus.

CVSS Vector

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Timeline

Published
September 21, 2026
Last Modified
September 29, 2026
First Seen
September 21, 2026

Related Vulnerabilities