Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit concurrent POST /v1/chat/completions with malicious sparse tensor
-
DeliveryRace asyncio.gather thread pool for global invariant state
-
ExploitThread A enables guard, Thread B enters window
-
ExecutionThread A exits and disables global guard
-
PersistThread B deserializes invalid sparse tensor unchecked
-
ImpactInvalid tensor reaches to_dense(), disrupts inference availability
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V15 - Secure Coding and Architecture Concurrency control, locking
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires |
| Impact | The CVSS 4.0 base vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N, score 6.3) characterizes this as a network-reachable, low-complexity, unauthenticated attack with an attack requirement (AT:P) reflecting the non-default |
| Exploit ScenarioDerived | An attacker with access to a vLLM API endpoint (with |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 13, 2026
Race condition in vLLM's prompt embedding loader allows concurrent API requests to bypass the sparse tensor invariant guard introduced for CVE-2025-62164, permitting an invalid sparse tensor to reach tensor.to_dense() and cause availability disruption. Affected deployments span versions 0.20.2rc0 through 0.25.x and are limited to instances with enable_prompt_embeds explicitly enabled. No public exploit code or CISA KEV listing exists at time of analysis; the fix is confirmed in v0.26.0.
RemediationAI
Upgrade vLLM to version 0.26.0 or later, which replaces the non-thread-safe torch.sparse.check_sparse_tensor_invariants context manager with the thread-safe check_sparse_tensor_invariants_threadsafe locking wrapper, as implemented in commit 793cf79c89d4049124e756915468ac30318f2e50 (https://github.com/vllm-project/vllm/commit/793cf79c89d4049124e756915468ac30318f2e50) and released at https://github.com/vllm-project/vllm/releases/tag/v0.26.0. If immediate upgrade is not feasible, disable the enable_prompt_embeds feature flag in the vLLM server configuration, which entirely removes the vulnerable code path; note this will break any multimodal workflows that depend on pre-computed prompt embeddings submitted through the API. As an additional layer, restricting access to the POST /v1/chat/completions endpoint via API gateway authentication or network-level controls limits exposure to trusted callers, though this does not fix the underlying race.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in pypi, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
vLLM (cpe:2.3:a:vllm-project:vllm:*:*:*:*:*:*:*:*) is a high-throughput LLM inference and serving engine that supports multimodal prompt embeddings via the POST /v1/chat/completions endpoint. The vulnerable function safe_load_prompt_embeds in vllm/renderers/embed_utils.py relies on PyTorch's torch.sparse.check_sparse_tensor_invariants context manager, which operates on process-global state through save, enable, and restore operations. CWE-362 (Concurrent Execution Using Shared Resource with Improper Synchronization) is the root cause: when AsyncMultiModalItemTracker.resolve_items dispatches multiple embedding loads concurrently via asyncio.gather and the default thread executor, Thread A's enabled-guard window overlaps with Thread B's tensor loading, but Thread B completes its load after Thread A restores the global state to disabled. The CVE-2025-62164 guard thus executes under Thread A's enable window but is effectively absent when Thread B's malicious sparse tensor is deserialized, allowing it to reach to_dense() unchecked. The fix in PR #48583 introduces check_sparse_tensor_invariants_threadsafe, a threading-lock-protected wrapper that serializes the critical section.
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:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Race condition requires precise thread interleaving timing (AC:H); no authentication needed for API access (PR:N); impact is availability-only at Low severity with unchanged scope.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
vLLM is an inference and serving engine for large language models. From 0.20.2rc0 until 0.26.0, safe_load_prompt_embeds in vllm/renderers/embed_utils.py uses torch.sparse.check_sparse_tensor_invariants, whose process-global save, enable, and restore state can be raced by concurrent prompt_embeds parts submitted to POST /v1/chat/completions through AsyncMultiModalItemTracker.resolve_items, asyncio.gather, and the default executor, allowing an invalid sparse tensor to reach tensor.to_dense despite the CVE-2025-62164 guard when enable_prompt_embeds is enabled. This issue is fixed in version 0.26.0.
Blast Radius
ecosystem impact- 1 pypi packages depend on vllm (1 direct, 0 indirect)
Ecosystem-wide dependent count for version 0.21.0.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Race conditions occur when multiple concurrent requests exploit the brief time gap between checking a condition and acting upon it (TOCTOU - Time of Check, Time of Use).
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).
Remote code execution in vLLM 0.10.1 through 0.13.x lets an attacker who controls the model repository or path run arbit
EUVD-2026-58064
GHSA-pr7f-p5mw-fc87
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB