CVE-2026-90878: vLLM: chat_template abuse causes resource exhaustion
MEDIUMPoC AVAILABLECISA: TRACK*CVE-2026-90878 lets an authenticated remote user send a crafted chat_template argument to vLLM's /v1/chat/completions endpoint and force expensive Jinja template rendering, tying up the inference server and degrading availability. The impact is limited to availability, with no confidentiality or integrity effect, which is why the CVSS score is only 4.3. Even so, a public proof-of-concept exists, the attack is low complexity, and CISA's SSVC decision is TRACK*, so it deserves attention on any internet-facing or multi-tenant vLLM deployment. EPSS is low at 0.53% (around the 57th percentile) and the CVE is not in CISA KEV, so mass exploitation is unlikely right now. The fix is a pull request (#52163) that had not yet been accepted at publication, so check the vLLM repository for a patched release beyond 0.27.1. Until then, stop clients from supplying their own chat_template and put rate limits and request timeouts in front of the endpoint.
What is the risk?
Medium. The attack is network-reachable, low complexity, and needs only low privileges (a valid API key or access to the endpoint), with no user interaction. The impact is availability only (A:L). A public PoC raises the chance of opportunistic abuse, but EPSS is low and there is no KEV listing or Nuclei template. Exposure is highest where vLLM is shared across tenants or exposed to untrusted API clients, because one client can degrade service for everyone. The fix was pending at disclosure.
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) Track vllm-project/vllm PR #52163 and issue #52025, and upgrade to the first release that includes the fix. 2) Until then, reject or strip the chat_template field from client requests at an API gateway or reverse proxy, and rely on the server-side template configured at launch. 3) Enforce authentication, per-key rate limits, request size limits and timeouts in front of /v1/chat/completions. 4) Do not expose vLLM directly to the internet or untrusted tenants. 5) Detect abuse by alerting on requests that contain chat_template, on unusually long request-processing times, and on CPU or memory spikes on inference nodes. 6) Set resource limits and health-based restarts on vLLM containers.
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-90878?
CVE-2026-90878 lets an authenticated remote user send a crafted chat_template argument to vLLM's /v1/chat/completions endpoint and force expensive Jinja template rendering, tying up the inference server and degrading availability. The impact is limited to availability, with no confidentiality or integrity effect, which is why the CVSS score is only 4.3. Even so, a public proof-of-concept exists, the attack is low complexity, and CISA's SSVC decision is TRACK*, so it deserves attention on any internet-facing or multi-tenant vLLM deployment. EPSS is low at 0.53% (around the 57th percentile) and the CVE is not in CISA KEV, so mass exploitation is unlikely right now. The fix is a pull request (#52163) that had not yet been accepted at publication, so check the vLLM repository for a patched release beyond 0.27.1. Until then, stop clients from supplying their own chat_template and put rate limits and request timeouts in front of the endpoint.
Is CVE-2026-90878 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2026-90878, increasing the risk of exploitation.
How to fix CVE-2026-90878?
1) Track vllm-project/vllm PR #52163 and issue #52025, and upgrade to the first release that includes the fix. 2) Until then, reject or strip the chat_template field from client requests at an API gateway or reverse proxy, and rely on the server-side template configured at launch. 3) Enforce authentication, per-key rate limits, request size limits and timeouts in front of /v1/chat/completions. 4) Do not expose vLLM directly to the internet or untrusted tenants. 5) Detect abuse by alerting on requests that contain chat_template, on unusually long request-processing times, and on CPU or memory spikes on inference nodes. 6) Set resource limits and health-based restarts on vLLM containers.
What systems are affected by CVE-2026-90878?
This vulnerability affects the following AI/ML architecture patterns: model serving, LLM inference APIs, multi-tenant inference gateways, RAG pipelines, agent frameworks.
What is the CVSS score for CVE-2026-90878?
CVE-2026-90878 has a CVSS v3.1 base score of 4.3 (MEDIUM). The EPSS exploitation probability is 0.53%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0029Denial of AI ServiceAML.T0034.001Resource-Intensive QueriesAML.T0040AI Model Inference API AccessCompliance Controls Affected
What are the technical details?
Original Advisory
A vulnerability was determined in vllm-project vLLM up to 0.27.1. This affects an unknown part of the file /v1/chat/completions of the component Jinja Template Rendering. This manipulation of the argument chat_template causes resource consumption. The attack can be initiated remotely. The exploit has been publicly disclosed and may be utilized. The pull request to fix this issue awaits acceptance.
Exploitation Scenario
An attacker with a low-privilege API key for a shared vLLM endpoint sends repeated POST requests to /v1/chat/completions with a chat_template argument containing a pathological Jinja construct, such as deeply nested loops or huge string expansions. Each request consumes disproportionate CPU or memory in the rendering step. A handful of concurrent requests saturates the server, so legitimate inference calls time out and downstream applications fail until the process is restarted.
Weaknesses (CWE)
CWE-400Uncontrolled Resource ConsumptionPrimaryCWE-404Improper Resource Shutdown or ReleasePrimaryCWE-400Uncontrolled Resource ConsumptionCWE-404Improper Resource Shutdown or ReleaseCWE-400 — Uncontrolled Resource Consumption: The product does not properly control the allocation and maintenance of a limited resource.
- [Architecture and Design] Design throttling mechanisms into the system architecture. The best protection is to limit the amount of resources that an unauthorized user can cause to be expended. A strong authentication and access control model will help prevent such attacks from occurring in the first place. The login application should be protected against DoS attacks as much as possible. Limiting the database access, perhaps by caching result sets, can help minimize the resources expended. To further limit the potential for a DoS attack, consider tracking the rate of requests received from users and blocking requests that exceed a defined rate threshold.
- [Architecture and Design] Mitigation of resource exhaustion attacks requires that the target system either: The first of these solutions is an issue in itself though, since it may allow attackers to prevent the use of the system by a particular valid user. If the attacker impersonates the valid user, they may be able to prevent the user from accessing the server in question. The second solution is simply difficult to effectively institute -- and even when properly done, it does not provide a full solution. It simply makes the attack require more resources on the part of the attacker. recognizes the attack and denies that user further access for a given amount of time, or uniformly throttles all requests in order to make it more difficult to consume resources more quickly than they can again be freed.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:LReferences
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