Skip to main content

vLLM CVE-2026-105757

MEDIUM
Improper Input Validation (CWE-20)
2026-10-05 security-advisories@github.com GHSA-85xf-c7hm-whqw
6.5
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Obtain access to vLLM inference API
  2. Delivery
    Submit crafted structured-output request
  3. Exploit
    Escape request-scoped validation
  4. Execution
    Reach EngineCore fatal-error path
  5. Impact
    Crash shared engine (service-wide DoS)

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
Exploitation Conditions

Requires the ability to submit structured-output / constrained-generation requests to a running vLLM server (PR:L - request-submission access to the inference endpoint, not anonymous unless the endpoint is exposed without auth). Three distinct triggers each suffice: (1) a per-request structured-output backend mismatch that re-raises a grammar compilation exception; (2) the ngram_gpu speculative-decoding mode being enabled, whose -1 padding passes a negative token id to llguidance validation (this path is limited to deployments configured with speculative decoding via ngram_gpu); and (3) the Rust frontend accepting empty structured-output values that the Python frontend would reject. Limiting factors: impact is denial of service only (no code execution, no data exposure); the engine must be running structured-output/guided-decoding features; and affected versions are those prior to 0.30.0. The shared-engine design means a single request affects all co-tenants.

Impact

This is a moderate-severity, availability-only denial-of-service flaw, not a high-priority emergency. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H, base 6.5) is internally consistent: network-reachable, low-complexity, requiring low privileges (PR:L - i.e. an actor able to submit requests to the inference endpoint), with no confidentiality or integrity impact and high availability impact. All three described defects (per-request backend mismatch re-raising a grammar compilation exception, ngram_gpu speculative padding passing a negative token to guidance validation, and the Rust frontend admitting empty structured-output values) converge on the same outcome: an ordinary constrained-generation request escapes request-scoped validation, reaches the EngineCore fatal-error path, and terminates the SHARED engine - so one malicious or malformed request can take down service for all tenants. No EPSS score, no CISA KEV listing, and no public POC are present in the input, so this is 'no public exploit identified at time of analysis.' The GitHub source evidence is the fix commit and regression tests, not weaponized exploit code. Note one metadata conflict: the input Tag 'Information Disclosure' contradicts the CVSS vector (C:N), which shows no confidentiality impact - this is a denial-of-service issue, so treat the 'Information Disclosure' tag as erroneous. Overall: a real reliability/availability risk for multi-tenant vLLM deployments, but the low-to-no exploitation signals and availability-only impact keep it below critical priority.

Exploit ScenarioDerived

An actor with access to a multi-tenant vLLM inference endpoint submits a constrained-generation (structured-output) request crafted to trigger one of the three validation-escape paths - for example a backend mismatch that re-raises a grammar compilation exception, or (on a speculative-decoding deployment using ngram_gpu) input that causes a negative token to reach guidance validation. The failure escapes request-scoped handling and hits the EngineCore fatal-error path, crashing the shared engine and denying service to all other users of that instance. No public exploit code is identified; fix tests exist but are defensive regression tests, not an attack POC.

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 05, 2026

Structured-output validation in vLLM versions prior to 0.30.0 can escape the per-request path and terminate the shared EngineCore process, denying service to every co-tenant on that engine. Three distinct triggers are sufficient on their own: a per-request structured-output backend mismatch that re-raises a grammar compilation exception, the -1 sentinel padding generated by the ngram_gpu speculative-decoding mode being passed as a negative token id to llguidance validation, and a Rust frontend that admits empty structured-output values which the Python frontend correctly rejects. Exploitation requires the ability to submit constrained-generation requests to the inference endpoint (CVSS PR:L, unauthenticated only if the endpoint is exposed without authentication), and the impact is availability-only with no code execution or data exposure; no public exploit code was identified at time of analysis and the flaw is fixed in 0.30.0.

RemediationAI

Upgrade to vLLM 0.30.0, the vendor-released fixed version, which contains commit c55e15a44ec4127832d4a86928a356fdd9e68dbd and addresses all three trigger paths; the vendor advisory is at https://github.com/vllm-project/vllm/security/advisories/GHSA-85xf-c7hm-whqw and the release notes at https://github.com/vllm-project/vllm/releases/tag/v0.30.0. If an immediate upgrade is not possible, apply targeted compensating controls: disable structured output / guided decoding so that no grammar is compiled or validated (this removes the attack surface entirely but also removes constrained-generation guarantees for legitimate callers); avoid speculative decoding with the ngram_gpu mode, or disable speculative decoding altogether, so the -1 sentinel padding path cannot be reached (at the cost of reduced throughput); and force the Python request frontend instead of the Rust frontend so that empty structured-output values are rejected before reaching the engine (at the cost of the Rust frontend's performance characteristics). Because exploitation requires request-submission access (PR:L), requiring authentication on the inference endpoint, rate-limiting structured-output requests per principal, and isolating untrusted tenants onto separate vLLM instances each reduce the blast radius of the shared EngineCore design - none of these fully mitigate a party already authorized to submit requests. No vendor-released patch alternative exists beyond version 0.30.0; the upgrade is the only complete fix.

Affected Packages

pypi vllm fix: 0.30.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 is a high-throughput inference and serving engine for large language models, built around an EngineCore that processes requests for many tenants through a shared scheduler and model runner. Structured (guided) output is enforced by pluggable backends such as llguidance/guidance, which receive draft or sampled token ids and validate them against a compiled grammar; the guidance matcher raises OverflowError when it encounters a negative token id. The root-cause class is CWE-20 (improper input validation): validation that should be scoped to a single request is instead allowed to propagate an exception into the EngineCore fatal-error path. The commit and accompanying tests show the two concrete mechanisms, namely that ngram_gpu speculative decoding pads unfilled draft slots with -1, and that GuidanceGrammar.validate_tokens must stop at the first sentinel rather than forwarding it, while update_draft_token_ids and update_draft_token_ids_in_output must strip that padding before grammar validation (the -1 pad-back in scheduled_spec_decode_tokens being preserved intentionally). The third mechanism is an inconsistency between the Rust and Python request frontends for empty structured-output values. A per-request backend mismatch can also re-raise a grammar compilation exception. Because EngineCore is shared, any of these failures escalates from a single malformed request into an engine-wide denial of service. Note that the supplied tag labels this record as 'Information Disclosure', which does not match the assessed impact - the authoritative assessment is availability-only (C:N/I:N/A:H on CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U).

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) 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 constrained-generation request from an actor able to submit requests (PR:L), low complexity, crashing the shared engine yields A:H with no C/I impact.

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).

CVSS VectorVendor: github

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

DescriptionCVE.org

vLLM is an inference and serving engine for large language models. Prior to 0.30.0, structured-output request failures can escape request-scoped validation and reach the EngineCore fatal-error path. A per-request backend mismatch can re-raise a grammar compilation exception, padding produced by the ngram_gpu speculative-decoding mode can pass a negative token to guidance validation, and the Rust frontend can admit empty structured-output values that the Python frontend rejects, allowing ordinary constrained-generation requests to terminate the shared engine. This issue is fixed in version 0.30.0.

Blast Radius

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

Ecosystem-wide dependent count for version 0.30.0.

Threat Intelligence Overview

EPSS Score
0.3%
Top 78% exploitable
Prevalence
High
vLLM is a dominant, widely-deployed open-source LLM inference and serving engine
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium
🇯🇵JVN NVD CVE.org EPSS Vulnrichment GHSA Vendor CIRCL GitHub

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
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

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

Affected Products (CPE)CVE.org

cpe:2.3:a:vllm:vllm:*:*:*:*:*:*:*:*

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