CVE-2026-93592: vLLM: negative token ID crashes embeddings engine
HIGHPoC AVAILABLECISA: TRACK*vLLM versions before 0.28.0 do not validate the lower bound of token IDs on the /v1/embeddings and /pooling endpoints, so a single unauthenticated request containing a negative token ID triggers a CUDA device-side assertion that poisons the GPU context. Every later request fails until the process is restarted, so one packet can take an inference node offline. Public PoC code exists and the attack is low complexity over the network with no privileges, but the EPSS score is low (0.00544, around the 56th percentile), it is not in CISA KEV and CISA SSVC rates it TRACK*, so this is not a sign of mass exploitation yet. Exposure matters most: any vLLM embeddings or pooling endpoint reachable from untrusted networks, or without an authenticating gateway, is trivially knocked over. Upgrade to vLLM 0.28.0 or later, and until then block untrusted access to these endpoints or validate token IDs at a gateway.
What is the risk?
High severity (CVSS 7.5) with an availability-only impact. Exploitation is trivial: one HTTP request, no authentication, no user interaction. A public PoC exists, but EPSS is low (0.00544, top 56%), there is no KEV listing and no Nuclei template, and SSVC is TRACK*, which suggests opportunistic rather than widespread exploitation. Real-world risk depends on exposure. Internet-facing or multi-tenant vLLM deployments with no authentication layer are at highest risk. Because recovery needs a process restart, the outage persists until someone intervenes, and an attacker can repeat it right after each restart. There is no confidentiality or integrity impact.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| vLLM | pip | — | No patch |
Do you use vLLM? You're affected.
How severe is it?
What is the attack surface?
What should I do?
1 step1) Upgrade vLLM to 0.28.0 or later, which validates the token ID lower bound. 2) If you cannot patch immediately, do not expose /v1/embeddings and /pooling to untrusted networks. Place them behind an authenticated API gateway or reverse proxy and enable vLLM's API key option. 3) Add a gateway or WAF rule that rejects requests where any token ID in the input array is negative. 4) Configure liveness and readiness probes that exercise a real inference call, with automatic restart (Kubernetes, systemd), so a poisoned CUDA context is detected and recovered. 5) Rate limit and monitor for repeated CUDA device-side assertion errors, sudden 5xx spikes and engine restarts in vLLM logs. 6) Inventory all vLLM instances, including internal and shadow deployments, with pip or container image version checks.
What does CISA's SSVC say?
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:
Frequently Asked Questions
What is CVE-2026-93592?
vLLM versions before 0.28.0 do not validate the lower bound of token IDs on the /v1/embeddings and /pooling endpoints, so a single unauthenticated request containing a negative token ID triggers a CUDA device-side assertion that poisons the GPU context. Every later request fails until the process is restarted, so one packet can take an inference node offline. Public PoC code exists and the attack is low complexity over the network with no privileges, but the EPSS score is low (0.00544, around the 56th percentile), it is not in CISA KEV and CISA SSVC rates it TRACK*, so this is not a sign of mass exploitation yet. Exposure matters most: any vLLM embeddings or pooling endpoint reachable from untrusted networks, or without an authenticating gateway, is trivially knocked over. Upgrade to vLLM 0.28.0 or later, and until then block untrusted access to these endpoints or validate token IDs at a gateway.
Is CVE-2026-93592 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2026-93592, increasing the risk of exploitation.
How to fix CVE-2026-93592?
1) Upgrade vLLM to 0.28.0 or later, which validates the token ID lower bound. 2) If you cannot patch immediately, do not expose /v1/embeddings and /pooling to untrusted networks. Place them behind an authenticated API gateway or reverse proxy and enable vLLM's API key option. 3) Add a gateway or WAF rule that rejects requests where any token ID in the input array is negative. 4) Configure liveness and readiness probes that exercise a real inference call, with automatic restart (Kubernetes, systemd), so a poisoned CUDA context is detected and recovered. 5) Rate limit and monitor for repeated CUDA device-side assertion errors, sudden 5xx spikes and engine restarts in vLLM logs. 6) Inventory all vLLM instances, including internal and shadow deployments, with pip or container image version checks.
What systems are affected by CVE-2026-93592?
This vulnerability affects the following AI/ML architecture patterns: model serving, RAG pipelines, embedding services, LLM inference clusters, multi-tenant GPU inference.
What is the CVSS score for CVE-2026-93592?
CVE-2026-93592 has a CVSS v3.1 base score of 7.5 (HIGH). The EPSS exploitation probability is 0.54%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0029Denial of AI ServiceAML.T0040AI Model Inference API AccessAML.T0049Exploit Public-Facing ApplicationCompliance Controls Affected
What are the technical details?
Original Advisory
vLLM versions before 0.28.0 fail to validate the lower bound of token IDs in the /v1/embeddings and /pooling endpoints, allowing unauthenticated attackers to crash the engine by submitting negative token IDs. A single request with a negative token ID triggers a CUDA device-side assertion that poisons the GPU context, causing all subsequent requests to fail until the process restarts.
Exploitation Scenario
An attacker scans for exposed vLLM servers, for example via the /v1/models or /docs endpoints. They send one POST to /v1/embeddings with an input array of token IDs containing a value such as -1. The server passes the value to the GPU embedding lookup, a CUDA device-side assertion fires, and the GPU context becomes unusable. Every subsequent request, including legitimate completions and embeddings, returns errors. The company's RAG assistant and search features go offline. After operations restart the process, the attacker repeats the request on a schedule to keep the service down, or uses it as leverage for extortion or to disrupt a competitor's AI product.
Weaknesses (CWE)
CWE-129 — Improper Validation of Array Index: The product uses untrusted input when calculating or using an array index, but the product does not validate or incorrectly validates the index to ensure the index references a valid position within the array.
- [Architecture and Design] Use an input validation framework such as Struts or the OWASP ESAPI Validation API. Note that using a framework does not automatically address all input validation problems; be mindful of weaknesses that could arise from misusing the framework itself (CWE-1173).
- [Architecture and Design] For any security checks that are performed on the client side, ensure that these checks are duplicated on the server side, in order to avoid CWE-602. Attackers can bypass the client-side checks by modifying values after the checks have been performed, or by changing the client to remove the client-side checks entirely. Then, these modified values would be submitted to the server. Even though client-side checks provide minimal benefits with respect to server-side security, they are still useful. First, they can support intrusion detection. If the server receives input that should have been rejected by the client, then it may be an indication of an attack. Second, client-side error-checking can provide helpful feedback to the user about the expectations for valid input. Third, there may be a reduction in server-side processing time for accidental input errors, although this is typically a small savings.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
Timeline
Related Vulnerabilities
CVE-2026-6173210.0Decepticon: ChatML token injection yields sandbox RCE
Same package: vllmCVE-2024-110419.8vllm: RCE via unsafe pickle deserialization in MessageQueue
Same package: vllmCVE-2025-472779.8vLLM: RCE via exposed TCPStore in distributed inference
Same package: vllmCVE-2026-259609.8vllm: SSRF allows internal network access
Same package: vllmCVE-2024-90539.8vllm: RCE via unsafe pickle deserialization in RPC server
Same package: vllm