Skip to main content

vLLM CVE-2026-115915

| EUVDEUVD-2026-110035 CRITICAL
Improper Input Validation (CWE-20)
2026-10-26 GitHub_M GHSA-h3rc-j82p-2c3h
9.8
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Reach vLLM image-capable endpoint
  2. Delivery
    Submit EPS payload mislabeled image/png
  3. Exploit
    Pillow autodetects EPS by signature
  4. Execution
    Ghostscript invoked on untrusted PostScript
  5. Persist
    CVE-2024-29510 bypasses -dSAFER sandbox
  6. Impact
    Execute commands as vLLM process user

Vulnerability Assessment

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

Exploitation requires ALL of: (1) a multimodal, image-capable request path enabled in vLLM - the OpenAI chat parser routes through parse_image()/fetch_image() and the media connector's data-URL handler, which forwards attacker bytes to ImageMediaIO without a Pillow format allowlist (pre-0.32.0); (2) a caller able to reach that endpoint under the deployment's authentication/network policy (API key and network controls determine who qualifies); and (3) for RCE, a host-provided Ghostscript build affected by CVE-2024-29510 - vLLM declares Pillow but NOT Ghostscript, so this executable must come from the host or container image - OR, for the alternative DoS impact, an installed Pillow in the 12.0.0-12.2.0 range (vllm 0.30.0 leaves Pillow unpinned, so existing environments can retain an affected version). LIMITING FACTORS: deployments with no Ghostscript or a build fixed at/after 10.03.1 are not exposed to the code-execution chain; environments on Pillow ≥12.3.0 are not exposed to the worker-exhaustion DoS; and endpoints gated by strong authentication or network isolation reduce who can reach the vulnerable boundary. The payload-trigger mechanism (EPS signature autodetection) is described, but the end-to-end HTTP trigger was not exercised in the sources.

Impact

The input CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H, base 8.1 High) describes a network-reachable flaw that, when it succeeds, yields full confidentiality, integrity and availability loss consistent with command execution. However, the AC:H rating is the key honest signal: this is an N-day dependency chain, not a self-contained vLLM RCE. The vLLM-specific defect is unsafe dispatch of untrusted image bytes to Pillow's format autodetection; code execution only occurs when the host separately runs a Ghostscript build vulnerable to CVE-2024-29510 (which vLLM does not declare or ship), and the denial-of-service only occurs when Pillow 12.0.0-12.2.0 (CVE-2026-59203) is installed. Deployments lacking those vulnerable dependencies are not affected by the corresponding impact, which materially narrows real-world exposure below what a raw 8.1 implies. No EPSS score was provided, so exploitation probability cannot be quantified. This CVE is NOT in CISA KEV and there is no confirmed active exploitation. The vuln.today decision label is 'this_week' (not act_now/emergency), aligning with a serious-but-conditional priority rather than a drop-everything emergency. The researcher reproduced loader-level command execution (via ImageMediaIO.load_base64 with Debian Ghostscript 10.03.0) but did not exercise the HTTP request path end to end - so the network-vector claim is source-traced, not demonstrated. On PR:N: the CVSS marks it unauthenticated, but the advisory states that API-key and network controls govern who can reach the endpoint, so effective reachability depends on deployment auth policy - verify against your own configuration.

Exploit ScenarioDerived

An attacker who can reach a multimodal (image-capable) vLLM endpoint submits a chat/completions request containing an EPS/PostScript payload inside a data URL labeled image/png; because the MIME label does not constrain decoder selection, Pillow autodetects the EPS signature and invokes the host's Ghostscript on the attacker's PostScript. If that Ghostscript is affected by CVE-2024-29510, the crafted payload bypasses -dSAFER and executes commands as the vLLM process user; if Pillow 12.0.0-12.2.0 is present instead, a negative %%BeginBinary byte count hangs media-loading workers for denial of service. A loader-level PoC reference exists (command execution reproduced against Debian Ghostscript 10.03.0), but it is not verified as a working end-to-end HTTP exploit - the request path was source-traced only.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.6% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 26, 2026

vLLM before 0.32.0 lets untrusted image bytes pick their own Pillow decoder: ImageMediaIO calls Image.open(BytesIO(data)) without an allowlist and the declared MIME label does not constrain format selection, so an EPS payload submitted as image/png is dispatched to the host's Ghostscript. On hosts whose Ghostscript is affected by CVE-2024-29510 this chains to command execution with the vLLM process's privileges, and on environments running Pillow 12.0.0 through 12.2.0 the same boundary reaches CVE-2026-59203, where a malformed EPS parks media-loading workers until the pool is exhausted. The CVSS 3.1 vector is AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H (8.1 High), reflecting that reachability still depends on an image-capable endpoint, the deployment's API-key and network policy, and a vulnerable host dependency; the reported reproduction covered the loader-level command execution, while the HTTP request path was only source-traced. No public exploit code was identified at time of analysis, and CISA KEV does not list this CVE.

RemediationAI

Vendor-released patch: upgrade to vLLM 0.32.0, which adds the ALLOWED_IMAGE_FORMATS allowlist and routes ImageMediaIO through open_image() so EPS, WMF, BUFR, GRIB, HDF5 and MPEG can no longer be selected by attacker-supplied bytes (see https://github.com/vllm-project/vllm/pull/60022 and https://github.com/vllm-project/vllm/releases/tag/v0.32.0). In parallel, pin Pillow to 12.3.0 or later, since environments left on Pillow 12.0.0-12.2.0 remain exposed to the CVE-2026-59203 worker-exhaustion loop even with the format allowlist reasoning documented separately in GHSA-pg7v-jwj7-p798, and remediate or remove any host Ghostscript older than 10.03.1 as advised at https://www.ghostscript.com/releases/cve/index.html - vLLM does not ship Ghostscript, so the executable comes from the host or container image and can simply be absent or replaced; note that hardening Ghostscript alone does not close the dispatch flaw. Because reachability depends on an image-capable endpoint and the deployment's API-key and network policy, restricting or disabling multimodal image ingestion and limiting which callers can reach those endpoints reduces exposure, at the cost of losing image inputs for affected models. The advisory's reproduction was limited to the loader path on PyPI vllm 0.30.0 with Debian Ghostscript 10.03.0 and Pillow 12.2.0/12.3.0, so verify your own dependency combination rather than assuming either impact applies.

Affected VersionsENISA

vllm < 0.32.0

Affected Packages

euvd vllm fix: 0.32.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

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

Technical ContextAI · show details

The root cause is CWE-20 improper input validation at a media-ingestion trust boundary. ImageMediaIO is the point where attacker bytes enter Pillow's format autodetection, and prior to 0.32.0 it passed a BytesIO of raw request data straight to Image.open(); Pillow identifies formats by file signature rather than by the declared MIME type, so a data URL labelled image/png still selects the EPS plugin when the bytes carry a PostScript header. Pillow's EPS handler shells out to a host Ghostscript binary with -dSAFER, -sDEVICE=pnmraw and the untrusted input, meaning vLLM never declares Ghostscript in its requirements yet can hand it attacker-controlled PostScript. The code-execution primitive itself comes from the already-published Ghostscript CVE-2024-29510 -dSAFER bypass (fixed upstream at 10.03.1); vLLM's specific flaw is the unconstrained format dispatch that lets remote image content reach that interpreter. Independently, an installed Pillow in the 12.0.0-12.2.0 range loops inside the EPS parser on a negative %%BeginBinary count (CVE-2026-59203), which does not invoke Ghostscript and yields worker exhaustion rather than code execution. The upstream fix introduces an ALLOWED_IMAGE_FORMATS tuple of in-process raster/still-image decoders and an open_image() helper that calls Image.open(fp, formats=ALLOWED_IMAGE_FORMATS), deliberately excluding EPS, WMF, BUFR, GRIB, HDF5 and MPEG because those shell out or route through external stub handlers; the same allowlist is applied to the Kimi fused-vision _to_pil path. Only PyPI vllm 0.30.0 was explicitly exercised by the reporter, and the end-to-end HTTP trigger was traced in source but not run, so the precise remote request mechanics remain unverified.

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 HIGH
NVD 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.1 HIGH

Network-reachable image endpoint (AV:N, PR:N for unauthenticated worst case), but success depends on a specific vulnerable host Ghostscript build outside attacker control (AC:H); command execution yields full C/I/A impact.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorNVD

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

Lifecycle Timeline

4
Severity Changed
Oct 28, 2026 - 15:52 NVD
HIGH CRITICAL
CVSS changed
Oct 28, 2026 - 15:52 NVD
8.1 (HIGH) 9.8 (CRITICAL)
Patch available
Oct 26, 2026 - 18:18 EUVD
CVE Published
Oct 26, 2026 - 17:16 cve.org
HIGH 8.1

DescriptionNVD

vLLM is an inference and serving engine for large language models. Prior to 0.32.0, ImageMediaIO passes attacker-controlled image bytes to Pillow through Image.open(BytesIO(data)) without restricting decoder selection, and the MIME label does not constrain the selected format. Image-capable request paths through parse_image() and fetch_image() can therefore dispatch an EPS payload to host components. A host with Ghostscript affected by CVE-2024-29510 can execute commands with the vLLM process's privileges, while environments using Pillow 12.0.0 through 12.2.0 can trigger CVE-2026-59203 and exhaust media-loading workers. Deployments without the applicable vulnerable dependency are not affected by that corresponding impact. This issue is fixed in version 0.32.0.

Technical POC Analysis

CWE-20 (Improper Input Validation) at vLLM's image ingest boundary.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

vLLM versions prior to 0.32.0 contain a high-severity flaw (CVE-2026-115915) that allows unauthenticated remote attackers to execute commands on the host system by submitting specially crafted images to image-capable API endpoints, potentially leading to full compromise of the vLLM service and underlying infrastructure. This poses a significant risk to organizations using vLLM for AI inference, as it could result in data breaches, service disruption, and lateral movement within the network.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include restricting network access to image endpoints, deploying WAF rules to block EPS content, updating Ghostscript and Pillow to non-vulnerable versions, and disabling image processing if not essential.

Threat Intelligence Overview

EPSS Score
0.6%
Top 50% exploitable
Prevalence
High
dominant open-source LLM inference/serving engine, widely deployed in AI infrastructure
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD 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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.6%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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