CVE-2026-116180: vLLM: uninitialized tensor lets tenant crash engine
HIGHCVE-2026-116180 is a denial-of-service flaw in vLLM 0.8.5 through 0.30.x: an uninitialized logprobs tensor lets any authenticated client crash the shared inference engine. Any user who can send prompt_logprobs (or echo with logprobs) against a prefix cached by a KV connector triggers a tokenizer OverflowError that kills EngineCore, dropping every co-tenant request. The CVSS of 7.7 reflects a changed scope (S:C), meaning one low-privileged tenant can take down all others on a multi-tenant platform. No public exploit, Nuclei template, KEV listing or EPSS score exists yet, so exploitation is not observed, but the attack is low complexity and needs only API access. Upgrade to vLLM 0.31.0 or later, and until then block prompt_logprobs and echo+logprobs requests at the gateway for untrusted tenants.
What is the risk?
High for multi-tenant or shared vLLM deployments that use a KV connector (for example prefix cache offload or disaggregated prefill/decode). Exploitation is network-reachable, low complexity, needs low privileges and no user interaction. Impact is limited to availability (A:H), but the scope change means one tenant affects all others. Single-tenant or internal-only deployments without KV connectors carry much lower risk. No exploitation evidence, EPSS data or public PoC exists at publication, so confidence in near-term mass exploitation is low; the main risk is a malicious or careless tenant.
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.31.0 or later. 2) Until patched, reject or strip prompt_logprobs and echo-with-logprobs parameters for untrusted or low-trust tenants at the API gateway or reverse proxy. 3) If feasible, disable KV connector prefix reuse on shared instances. 4) Run vLLM under a supervisor with automatic restart and health checks, and isolate tenants onto separate engine instances where risk warrants. 5) Detect by alerting on EngineCore crashes, OverflowError stack traces in tokenizer decode, and requests that include prompt_logprobs or echo with logprobs followed by service restarts. 6) Rate-limit and attribute per-tenant requests to identify the offending caller.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-116180?
CVE-2026-116180 is a denial-of-service flaw in vLLM 0.8.5 through 0.30.x: an uninitialized logprobs tensor lets any authenticated client crash the shared inference engine. Any user who can send prompt_logprobs (or echo with logprobs) against a prefix cached by a KV connector triggers a tokenizer OverflowError that kills EngineCore, dropping every co-tenant request. The CVSS of 7.7 reflects a changed scope (S:C), meaning one low-privileged tenant can take down all others on a multi-tenant platform. No public exploit, Nuclei template, KEV listing or EPSS score exists yet, so exploitation is not observed, but the attack is low complexity and needs only API access. Upgrade to vLLM 0.31.0 or later, and until then block prompt_logprobs and echo+logprobs requests at the gateway for untrusted tenants.
Is CVE-2026-116180 actively exploited?
No confirmed active exploitation of CVE-2026-116180 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-116180?
1) Upgrade vLLM to 0.31.0 or later. 2) Until patched, reject or strip prompt_logprobs and echo-with-logprobs parameters for untrusted or low-trust tenants at the API gateway or reverse proxy. 3) If feasible, disable KV connector prefix reuse on shared instances. 4) Run vLLM under a supervisor with automatic restart and health checks, and isolate tenants onto separate engine instances where risk warrants. 5) Detect by alerting on EngineCore crashes, OverflowError stack traces in tokenizer decode, and requests that include prompt_logprobs or echo with logprobs followed by service restarts. 6) Rate-limit and attribute per-tenant requests to identify the offending caller.
What systems are affected by CVE-2026-116180?
This vulnerability affects the following AI/ML architecture patterns: model serving, LLM inference, multi-tenant inference platforms, disaggregated prefill/decode serving, shared LLM gateways.
What is the CVSS score for CVE-2026-116180?
CVE-2026-116180 has a CVSS v3.1 base score of 7.7 (HIGH). The EPSS exploitation probability is 0.25%.
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 from 0.8.5 before 0.31.0 has a denial of service flaw. LogprobsTensors.empty_cpu() in vllm/v1/outputs.py allocates an uninitialized int32 tensor, and the V1 model runner leaves prompt positions reported as computed by a KV connector unwritten. A client sharing the engine can send prompt_logprobs (or echo with logprobs) against a connector-cached prefix, making tokenizer decode raise OverflowError, which crashes EngineCore and drops all co-tenant requests.
Exploitation Scenario
An attacker with a low-privilege API key on a shared internal LLM platform sends a completion request whose prompt matches a prefix already cached through the KV connector, adding prompt_logprobs=1 (or echo=true with logprobs). The runner returns uninitialized values for the connector-computed positions, the tokenizer fails to decode them with OverflowError, and EngineCore terminates. All other tenants' requests, including customer-facing chatbots and agents, fail until the engine is restarted. The attacker repeats the request after each restart to keep the service down.
Weaknesses (CWE)
CWE-908 — Use of Uninitialized Resource: The product uses or accesses a resource that has not been initialized.
- [Implementation] Explicitly initialize the resource before use. If this is performed through an API function or standard procedure, follow all required steps.
- [Implementation] Pay close attention to complex conditionals that affect initialization, since some branches might not perform the initialization.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/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-2026-259609.8vllm: SSRF allows internal network access
Same package: vllmCVE-2025-472779.8vLLM: RCE via exposed TCPStore in distributed inference
Same package: vllmCVE-2024-90539.8vllm: RCE via unsafe pickle deserialization in RPC server
Same package: vllm