CVE-2026-116174: vLLM: gRPC invalid token IDs crash EngineCore (DoS)

HIGH
Published October 25, 2026
CISO Take

CVE-2026-116174 is an input validation flaw in vLLM's Rust gRPC Generate and GenerateStream service, which forwards unchecked prompt token IDs to the inference engine. A single request with out-of-vocabulary token IDs triggers a fatal embedding lookup failure that kills EngineCore and leaves the server unhealthy, so any client able to reach the gRPC port can take down inference. Severity is medium (CVSS 5.9, availability-only, no confidentiality or integrity impact), and there is no EPSS data, no KEV listing, no public exploit and no Nuclei template, so near-term mass exploitation looks unlikely. The risk is concentrated in production deployments that expose the gRPC endpoint to untrusted networks or multi-tenant users. Upgrade to vLLM 0.24.0 or later, and until then restrict the gRPC port to trusted callers or validate token IDs in a gateway in front of it.

Sources:NVDGitHub Advisoryvulncheck.comATLAS

What is the risk?

Medium overall. The attack needs no authentication or user interaction and is network reachable, but the CVSS rates attack complexity as high and the impact is limited to availability. Exploitation is conditional on the Rust gRPC frontend being enabled and reachable in affected versions 0.22.0 up to but not including 0.24.0. There is no known exploitation, EPSS is not available, and no public exploit exists. Risk rises sharply for shared or internet-exposed inference endpoints serving business-critical workloads, because one crafted request can cause an outage that needs a restart to recover.

How does the attack unfold?

Initial Access
Attacker locates a reachable vLLM Rust gRPC Generate/GenerateStream endpoint running version 0.22.0 to 0.23.x.
AML.T0040
Exploitation
Attacker submits a request with out-of-vocabulary prompt.token_ids that pass unchecked to EngineCore.
AML.T0049
Impact
The embedding lookup fails fatally, EngineCore terminates and the server remains unhealthy, denying inference service.
AML.T0029

What systems are affected?

PackageEcosystemVulnerable RangePatched
vLLMpip—No patch
95.4K94 dependentsPushed 6d 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.3%
chance of exploitation in 30 days
Higher than 20% of all CVEs
Exploitation Status
No known exploitation
Sophistication
Moderate

What is the attack surface?

AVACPRUISCIA
AVNetwork
ACLow
PRNone
UINone
SUnchanged
CNone
INone
AHigh

What should I do?

1 step
  1. 1) Upgrade vLLM to 0.24.0 or later. 2) Until patched, do not expose the gRPC port to untrusted networks; restrict it with network policies, mTLS or an authenticating API gateway. 3) Add a validating proxy that rejects prompt token IDs outside the model's vocabulary range before they reach vLLM. 4) Configure health checks and automatic restarts so an unhealthy EngineCore is detected and replaced quickly. 5) Detect by alerting on EngineCore fatal errors or embedding index errors in vLLM logs, unexpected server restarts, and gRPC requests carrying unusually large token ID values. 6) Review the GHSA-w2v2-5662-8v5q advisory for any further workarounds.

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-Response to unknown risks and system failures
OWASP LLM Top 10
LLM10-Unbounded Consumption

Frequently Asked Questions

What is CVE-2026-116174?

CVE-2026-116174 is an input validation flaw in vLLM's Rust gRPC Generate and GenerateStream service, which forwards unchecked prompt token IDs to the inference engine. A single request with out-of-vocabulary token IDs triggers a fatal embedding lookup failure that kills EngineCore and leaves the server unhealthy, so any client able to reach the gRPC port can take down inference. Severity is medium (CVSS 5.9, availability-only, no confidentiality or integrity impact), and there is no EPSS data, no KEV listing, no public exploit and no Nuclei template, so near-term mass exploitation looks unlikely. The risk is concentrated in production deployments that expose the gRPC endpoint to untrusted networks or multi-tenant users. Upgrade to vLLM 0.24.0 or later, and until then restrict the gRPC port to trusted callers or validate token IDs in a gateway in front of it.

Is CVE-2026-116174 actively exploited?

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

How to fix CVE-2026-116174?

1) Upgrade vLLM to 0.24.0 or later. 2) Until patched, do not expose the gRPC port to untrusted networks; restrict it with network policies, mTLS or an authenticating API gateway. 3) Add a validating proxy that rejects prompt token IDs outside the model's vocabulary range before they reach vLLM. 4) Configure health checks and automatic restarts so an unhealthy EngineCore is detected and replaced quickly. 5) Detect by alerting on EngineCore fatal errors or embedding index errors in vLLM logs, unexpected server restarts, and gRPC requests carrying unusually large token ID values. 6) Review the GHSA-w2v2-5662-8v5q advisory for any further workarounds.

What systems are affected by CVE-2026-116174?

This vulnerability affects the following AI/ML architecture patterns: model serving, LLM inference, gRPC inference APIs, RAG pipelines, agent frameworks.

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

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

What is the AI security impact?

Affected AI Architectures

model servingLLM inferencegRPC inference APIsRAG 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
OWASP LLM Top 10: LLM10

What are the technical details?

Original Advisory

vLLM from 0.22.0 before 0.24.0 contains an improper input validation vulnerability in the Rust gRPC Generate and GenerateStream service that forwards unchecked prompt token IDs to EngineCore. Attackers can submit requests with out-of-vocabulary prompt.token_ids values to trigger a fatal embedding lookup failure that terminates EngineCore and leaves the server unhealthy.

Exploitation Scenario

An attacker finds a vLLM inference service whose Rust gRPC endpoint is reachable, for example an internal LLM platform shared across teams or a poorly segmented cloud deployment. They send a Generate request with prompt.token_ids containing values beyond the model's vocabulary size. The unchecked IDs reach the embedding lookup, which fails fatally and terminates EngineCore. The server stays unhealthy, and the attacker repeats the request after every restart to keep the service down, disrupting dependent applications.

Weaknesses (CWE)

CWE-20 — Improper Input Validation: The product receives input or data, but it does not validate or incorrectly validates that the input has the properties that are required to process the data safely and correctly.

  • [Architecture and Design] Consider using language-theoretic security (LangSec) techniques that characterize inputs using a formal language and build "recognizers" for that language. This effectively requires parsing to be a distinct layer that effectively enforces a boundary between raw input and internal data representations, instead of allowing parser code to be scattered throughout the program, where it could be subject to errors or inconsistencies that create weaknesses. [REF-1109] [REF-1110] [REF-1111]
  • [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).

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
October 25, 2026
Last Modified
October 29, 2026
First Seen
October 25, 2026

Related Vulnerabilities