Skip to main content

vLLM CVE-2026-94623

| EUVDEUVD-2026-84217 HIGH
Reachable Assertion (CWE-617)
2026-09-21 disclosure@vulncheck.com GHSA-g3cp-v4cp-9xfq
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 vLLM NIXL disaggregated endpoint
  2. Delivery
    Send multi-prompt completion with kv_transfer_params
  3. Exploit
    Trigger block-count assertion in _apply_prefix_caching
  4. Execution
    Crash decode worker
  5. Impact
    Serving unavailable until restart

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V16 - Security Logging and Error Handling Reachable assertion handling
Exploitation Conditions

Requires the target to run vLLM 0.29.0 or earlier configured for a prefill/decode DISAGGREGATED deployment using the NIXL KV-transfer connector - a non-default, advanced multi-worker serving topology. The attacker must be able to reach the OpenAI-compatible completion API (network, no authentication per PR:N) and submit a completion request with MULTIPLE prompts of varying lengths carrying kv_transfer_params; single-prompt requests do not trigger the flaw (confirmed by the PR's test_single_prompt_with_kv_transfer_params_allowed). The primary limiting factor is the required disaggregated NIXL architecture: standard single-node vLLM deployments are not affected. Impact is limited to availability (decode worker crash requiring manual restart); no data disclosure or code execution.

Impact

The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H, score 8.7) is a pure availability impact with no confidentiality or integrity effect, correctly reflecting CWE-617 (reachable assertion → crash). The high score is driven entirely by VA:H combined with unauthenticated network reach. However, that score does NOT account for a significant gating factor stated plainly in the description: the flaw only exists in the NIXL connector's prefix-caching path used in prefill/decode DISAGGREGATED deployments - a non-default, advanced serving topology. The PR #51505 test names confirm the trigger requires 'kv_transfer_params' set on a multi-prompt completion request, further narrowing the attack surface to disaggregated setups. No EPSS score, no CISA KEV listing, and no public POC are present in the provided data, so exploitation status is 'no public exploit identified at time of analysis'. Net: for the minority of vLLM operators running NIXL disaggregated serving this is a genuine, easy, unauthenticated availability threat and should be patched promptly; for the default single-node deployment it is not reachable. The 8.7 base score overstates real-world priority for typical deployments because AT:N ignores the required non-default architecture. Signals are consistent (all point to availability-only DoS) but the raw score should be read against the deployment gate.

Exploit ScenarioDerived

An attacker with network access to a vLLM OpenAI-compatible endpoint running an NIXL prefill/decode disaggregated deployment sends a completion request containing multiple prompts of varying lengths together with kv_transfer_params. The mismatched block counts trip an assertion in NixlBaseConnectorWorker._apply_prefix_caching, crashing the decode worker, which stays unavailable until an operator restarts it. No authentication or user interaction is required and the request is trivially repeatable; no public exploit code was identified, though the fixing PR includes clear reproduction tests.

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 NIXL decode worker by submitting a single OpenAI-compatible completion request containing multiple prompts of differing lengths together with kv_transfer_params. The crash occurs in NixlBaseConnectorWorker._apply_prefix_caching, where block-count mismatches between the decode and prefill sides hit a reachable assertion (CWE-617); the decode worker terminates and stays unavailable until manually restarted, so a low-effort request loop can repeatedly take serving capacity offline. Impact is confined to availability (CVSS 4.0 8.7, AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H), with no confidentiality or integrity effect, and exploitation is gated on a non-default prefill/decode DISAGGREGATED topology that uses the NIXL KV-transfer connector - standard single-node vLLM serving is not affected. No publicly available exploit code and no confirmed active exploitation (CISA KEV) were identified at time of analysis, though the trigger is a trivially crafted multi-prompt API call.

RemediationAI

Vendor-released patch: vLLM PR #51505, which replaces the reachable assertions in _apply_prefix_caching with ValueError raises and adds API-layer rejection of multi-prompt completions that carry kv_transfer_params (advisory reference https://github.com/vllm-project/vllm/pull/51505; tracking ID GHSA-6vh8-5j8f-m4vf). Because no tagged release containing the fix was confirmed in the input data, treat this as an upstream fix available (PR/commit) with the released patched version not independently confirmed - verify against the vLLM release notes or pin to a build containing the merged PR before relying on it. Where upgrading is not immediately possible, the highest-value compensating control is to enforce the same input rule at the edge: reject or strip completions that combine multiple prompts with kv_transfer_params (a single prompt with kv_transfer_params is safe), which is precisely the guard the patch installs; the trade-off is that legitimate multi-prompt KV-transfer workloads are blocked. Alternative mitigations: disable prefix caching on the NIXL connector for disaggregated deployments, at the cost of substantially reduced prefill/decode cache reuse and higher latency; temporarily fall back to a non-disaggregated serving topology, which removes the vulnerable code path entirely but sacrifices disaggregation's throughput and scaling benefits; or restrict the OpenAI-compatible completion endpoint to trusted networks/API gateways, which reduces the attack surface but does not fix the flaw and is weak given the request requires no authentication (PR:N). Deployments should also add decode-worker liveness/auto-restart supervision, since the impact is a worker crash requiring restart rather than data compromise - this is a resilience measure, not a fix.

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 serving splits inference into separate prefill and decode workers that exchange key/value cache blocks over the NIXL (NVIDIA Inference Xfer Library) KV connector. When prefix caching is enabled, NixlBaseConnectorWorker._apply_prefix_caching reconciles the logical block layout produced by the prefill side against the blocks the decode side has allocated, padding or pairing groups as needed. For multi-prompt completion batches, each prompt of different length produces a different block count, and the connector's accounting (including the Mamba/SSM padding path controlled by _has_mamba and _physical_blocks_per_logical_kv_block) can yield num_decode_blocks greater than the number of prefill groups or an unpairable SSM slot count. The original code guarded these invariants with bare assert statements (sites now at base_worker.py around lines 2427-2491), so a violated invariant raises AssertionError, which is not a recoverable request-level error and kills the decode worker process. That maps directly to CWE-617 (Reachable Assertion): rather than validating untrusted request-derived input and returning a clean error, the worker trusts internal consistency and aborts. The upstream fix (vLLM PR #51505, tracked as GHSA-6vh8-5j8f-m4vf) does two things: it converts the three prefix-caching assertions into explicit ValueError raises, and it adds request validation in the OpenAI completion entrypoint that rejects multi-prompt completions carrying kv_transfer_params while still allowing the single-prompt case - a regression test in tests/entrypoints/openai/completion/test_completion_error.py asserts exactly that split.

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

Unauthenticated network request reliably crashes the decode worker (A:H, availability-only); AC:L since the request itself is simple, though real reach is gated by the non-default NIXL disaggregated deployment.

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

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 deployments through version 0.29.0 that use a disaggregated prefill/decode topology with the NIXL KV-transfer connector are exposed to a high-severity denial-of-service flaw (CVE-2026-94623, CVSS 8.7). An unauthenticated remote attacker can submit a single specially crafted OpenAI-compatible completion request to crash the NIXL decode worker, and a low-effort loop can repeatedly take serving capacity offline until manual restart. This affects availability of AI inference services, potentially disrupting customer-facing applications and internal workloads that depend on them; standard single-node vLLM serving is not impacted.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: disable the NIXL KV-transfer connector or switch to standard single-node vLLM serving if disaggregated topology is not required; enforce authentication and rate limiting at the API gateway; validate and reject multi-prompt requests containing kv_transfer_params with mismatched block counts; monitor decode worker health and configure automatic restart to minimize downtime.

Threat Intelligence Overview

EPSS Score
0.4%
Top 62% exploitable
Prevalence
High
vLLM is widely deployed AI inference infra, but NIXL disaggregated serving is non-default
Social Media
1
Sightings
Data Quality
7 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
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