Skip to main content

vLLM EUVDEUVD-2026-109996

| CVE-2026-115911 MEDIUM
Uncontrolled Resource Consumption (CWE-400)
2026-10-26 GitHub_M GHSA-542m-9234-8gvf
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain valid API credential
  2. Delivery
    Submit request with crafted Jinja2 chat_template
  3. Exploit
    Render loops/expands with no fuel or timeout
  4. Execution
    Wedge single-worker thread pool or OOM process
  5. Impact
    Cross-tenant denial of all chat endpoints until restart

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires a non-harmony model (model_type != gpt_oss; Harmony/gpt_oss models skip this Jinja path entirely) and renderer_num_workers at its default of 1. Two trigger vectors: (1) an authenticated API caller supplies a per-request chat_template, which works in default 'vllm serve' config when --chat-template is unset (the common case, since most HF models ship their own template) and is reachable via /v1/responses due to the related GHSA-jmjw-q4x3-hmc2 gate omission; or (2) a malicious model repository whose tokenizer_config.json carries the hostile template, which wedges any replica loading it on the first legitimate chat request even with trust_remote_code=False. Limiting factors: the attacker needs a valid API credential (PR:L); impact is confined to the API-server process per replica (engine/worker processes survive the CPU variant); effect persists until operator restart and survives client disconnect; Harmony models and deployments with an operator-set --chat-template reduce the authenticated-request vector.

Impact

Severity signals are moderate and internally consistent: the supplied CVSS:3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H, base 6.5) describes a network-reachable, low-complexity, authenticated attack with availability-only impact and no scope change - a classic resource-exhaustion DoS (CWE-400, with CWE-770 and CWE-834 added by the vendor advisory). The vuln.today Decision label is this_month, not act_now or emergency, and the vulnerability is not listed in CISA KEV; no EPSS score was provided in the input, so real-world exploitation probability cannot be quantified from the available data - state that gap explicitly rather than assume it is low. There is no PoC/exploit flag in the input (only vendor advisory, PR, commit, and release references), so this is no public exploit identified at time of analysis. The practical risk is higher than the mid-range score suggests for multi-tenant operators: per the GHSA advisory a single sub-100-byte authenticated request permanently wedges all chat-style endpoints for every tenant of a replica until restart (CPU variant) or OOM-kills the API-server process (string-multiplication variant), and a related gate omission (GHSA-jmjw-q4x3-hmc2) on /v1/responses makes the authenticated-attacker vector work in a default 'vllm serve' configuration. The main limiter is PR:L - the attacker must hold a valid API credential - so single-tenant deployments with trusted callers face lower real risk than shared multi-tenant services. This is a genuine availability priority for multi-tenant vLLM operators, not a purely theoretical high-CVSS issue, though the authentication requirement and availability-only impact keep it below critical.

Exploit ScenarioDerived

An authenticated API client of a multi-tenant vLLM deployment submits a single short (<100 byte) chat request carrying a malicious Jinja2 chat_template; the template renders in an unbounded loop with no timeout, wedging the single-worker render thread pool and denying all chat-style endpoints to every tenant until the process is restarted, or a string-multiplication variant exhausts memory and OOM-kills the API server. Because of a separate gate omission on /v1/responses, this works in a default 'vllm serve' configuration where --chat-template is unset. CVSS AC:L and PR:L mean the attack is low-complexity and needs only a valid API credential; no public exploit code is identified in the provided data.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 26, 2026

Denial of service in vLLM 0.19.0 through 0.31.x lets a caller who holds a valid API credential hand the server a hostile Jinja2 chat template - either directly in the request when the operator has not set --chat-template, or indirectly through a model repository whose tokenizer_config.json carries one - and hang every chat-style endpoint on that API-server replica until the process is restarted. The render runs inside a sandboxed Jinja environment with no wall-clock timeout, no output-size cap and no loop or binop bound, on a render pool that defaults to a single non-interruptible worker, so a tiny non-terminating template wedges /v1/chat/completions, /v1/responses, /tokenize and the chat pooling/invocations paths for all tenants, while a string-multiplication variant instead OOM-kills the process. Impact is availability-only across tenants of one replica (CVSS:3.1 6.5, PR:L), Harmony/gpt_oss models skip the affected Jinja path, and no public exploit code was identified at time of analysis; the vendor shipped a fix in 0.32.0.

RemediationAI

Vendor-released patch: vLLM 0.32.0 (https://github.com/vllm-project/vllm/releases/tag/v0.32.0, fixing commit cff08b461e086523cee8bba5bd3c66d302625134 via https://github.com/vllm-project/vllm/pull/50300, described in GHSA-542m-9234-8gvf); upgrade every API-server replica to 0.32.0 or later, which introduces a 500,000-unit render fuel budget, moves rendering off the shared async runtime, and lets a wedged render worker be swapped out. Where an immediate upgrade is not possible, the vendor-documented limiting factor is to configure --chat-template explicitly on the server so callers cannot supply their own per-request template - this removes the authenticated API vector but does nothing against a malicious model repository whose tokenizer_config.json carries the hostile template, so only load tokenizer configs from reviewed sources; note also that such a repository wedges replicas on the first legitimate chat request even with trust_remote_code=False. Recovery from an already wedged replica requires a process restart, since the CPU variant blocks all chat-style endpoints (including /v1/responses, reachable via the GHSA-jmjw-q4x3-hmc2 gate omission) until then, while engine and worker processes survive the CPU variant but are lost to the OOM-killing string-multiplication variant. Because the only complete fix is the 0.32.0 upgrade and no vendor-supplied interim control addresses the memory variant, restrict API credentials to trusted tenants and monitor the renderer for stalled chat endpoints in the interim.

Affected VersionsENISA

vllm 0.19.0, < 0.32.0

Affected Packages

pypi vllm fix: 0.32.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

vLLM resolves a model's chat template to Jinja2 source and hands it to tokenizer.apply_chat_template(), which compiles and .render()s it inside Hugging Face's ImmutableSandboxedEnvironment. That sandbox blocks code-execution escapes but imposes no wall-clock timeout, no output-size limit and no nested-loop or binop budget, so an attacker-controlled template is effectively unbounded work driven by a sub-100-byte request. The render is dispatched onto a ThreadPoolExecutor whose max_workers is governed by renderer_num_workers and defaults to 1; CPython worker threads cannot be interrupted, so one non-terminating render blocks all subsequent chat-template renders and the effect survives client disconnect, persisting until the process is restarted. This is CWE-400 (uncontrolled resource consumption), with the vendor advisory also tagging CWE-770 (allocation without limits) and CWE-834 (excessive iteration). Reachability in a default 'vllm serve' deployment depends on --chat-template being unset, which is the common case because most HF models ship their own template; the /v1/responses endpoint is reachable via a separately reported gate omission (GHSA-jmjw-q4x3-hmc2). The fix (PR 50300) adds an instruction fuel budget of 500,000 to the Rust minijinja renderer, offloads rendering through tokio spawn_blocking so it no longer stalls the shared runtime, and introduces a swappable executor in the Python renderer that recycles a wedged worker while keeping make_async wrappers and tokenize/decode paths alive.

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

Vendor (GitHub_M) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 6.5 MEDIUM

Network-reachable, low-complexity render abuse requiring a valid API credential (PR:L); availability-only impact (A:H) with no confidentiality/integrity effect and no cross-process scope change.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Red Hat 6.5 MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

1
Patch available
Oct 26, 2026 - 17:02 EUVD

DescriptionCVE.org

vLLM is an inference and serving engine for large language models. From 0.19.0 until 0.32.0, authenticated callers can supply a request chat template when no server-side --chat-template is configured, or a malicious model repository can provide a template that is compiled and rendered by tokenizer.apply_chat_template() without a wall-clock timeout, output-size limit, or iteration bound. Rendering runs in a ThreadPoolExecutor with one worker by default, so a nonterminating render can block /v1/responses and other chat-template users after the request ends, while an output-expanding render can exhaust server memory. Harmony models are not affected because they do not use this Jinja path. This issue is fixed in version 0.32.0.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 1 pypi packages depend on vllm (1 direct, 0 indirect)

Ecosystem-wide dependent count for version 0.19.0.

Threat Intelligence Overview

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Medium
popular LLM inference engine, common in AI/ML serving but domain-specific
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Vllm

View all
CVE-2025-32444 CRITICAL POC
10.0 Apr 30

vLLM is a high-throughput and memory-efficient inference and serving engine for LLMs. Rated critical severity (CVSS 10.0

CVE-2024-11041 CRITICAL POC
9.8 Mar 20

vllm-project vllm version v0.6.2 contains a vulnerability in the MessageQueue.dequeue() API function. Rated critical sev

CVE-2026-22778 CRITICAL POC
9.8 Feb 02

Information exposure in vLLM inference engine versions 0.8.3 to before 0.14.1. Invalid image requests to the multimodal

CVE-2025-59425 HIGH POC
7.5 Oct 07

Timing-based API key recovery in vLLM before 0.11.0rc2 can let remote attackers bypass bearer-token authentication on de

CVE-2025-30202 HIGH POC
7.5 Apr 30

vLLM is a high-throughput and memory-efficient inference and serving engine for LLMs. Rated high severity (CVSS 7.5), th

CVE-2026-54234 HIGH POC
7.5 Jul 06

Denial of service in the vLLM LLM inference server (all versions prior to 0.24.0) allows a remote client to crash the sh

CVE-2026-24779 HIGH POC
7.1 Jan 27

vLLM before version 0.14.1 contains a server-side request forgery vulnerability in the MediaConnector class where incons

CVE-2026-57173 MEDIUM POC
6.5 Sep 16

Out-of-memory worker crashes in vLLM can be induced by a single small compressed audio payload submitted to the /v1/chat

CVE-2025-46560 MEDIUM POC
6.5 Apr 30

vLLM is a high-throughput and memory-efficient inference and serving engine for LLMs. Rated medium severity (CVSS 6.5),

CVE-2026-69147 MEDIUM POC
6.5 Sep 16

GPU memory exhaustion in vLLM versions prior to 0.28.0 lets an attacker with low-privileged API access (PR:L in the CVSS

CVE-2026-105753 MEDIUM POC
6.5 Oct 05

Multimodal inference requests to vLLM deployments running versions prior to 0.28.0 can trigger a process-level assertion

CVE-2026-73559 MEDIUM POC
6.5 Aug 13

Uncontrolled resource consumption in vLLM's OpenAI-compatible completions endpoint allows any authenticated API client t

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy