CVE-2026-115915: vLLM: image decoder abuse enables RCE/DoS

GHSA-h3rc-j82p-2c3hHIGH
Published October 26, 2026
CISO Take

vLLM before 0.32.0 hands attacker-supplied image bytes to Pillow without restricting which decoders it may use, so an EPS payload disguised as a normal image can be routed to host components such as Ghostscript. On hosts with a Ghostscript build affected by CVE-2024-29510, this can lead to command execution with the vLLM process's privileges; on Pillow 12.0.0 through 12.2.0 it can exhaust media-loading workers (CVE-2026-59203). Exploitation is rated high-complexity because it depends on the vulnerable dependency being present. There is no public exploit, no Nuclei template and no KEV listing, and EPSS data is not yet available. However, vLLM is widely deployed (94 downstream dependents, 176 other CVEs in the package) and multimodal endpoints are often exposed to untrusted users. Upgrade to vLLM 0.32.0, and until then check whether Ghostscript is installed and patched and whether Pillow is in the affected range.

Sources:NVDGitHub AdvisoryATLASvllm-project/vllm release notes

What is the risk?

High (CVSS 8.1). The attack is network-reachable, needs no privileges and no user interaction, but complexity is high because impact depends on a vulnerable Ghostscript (CVE-2024-29510) or Pillow 12.0.0-12.2.0 being present. Exposure is greatest for internet-facing or multi-tenant multimodal endpoints that accept image URLs or uploads. There is no known active exploitation, no public PoC and no KEV listing, so near-term likelihood is moderate, but the pre-auth nature and the public patch make it easy to weaponize through patch diffing.

How does the attack unfold?

Initial Access
Attacker sends an EPS payload mislabelled as a standard image to an exposed multimodal vLLM endpoint.
AML.T0049
Decoder Dispatch
Pillow picks the EPS decoder from the content, ignoring the MIME label, and hands it to host components.
AML.T0040
Execution
A vulnerable Ghostscript (CVE-2024-29510) runs attacker commands with the vLLM process's privileges.
AML.T0050
Impact
Attacker steals credentials and model assets, or exhausts media workers to cause denial of service.
AML.T0029

What systems are affected?

PackageEcosystemVulnerable RangePatched
vLLMpip< 0.32.00.32.0
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
8.1 / 10
EPSS
0.7%
chance of exploitation in 30 days
Higher than 52% of all CVEs
Exploitation Status
No known exploitation
Sophistication
Moderate

What is the attack surface?

AVACPRUISCIA
AVNetwork
ACHigh
PRNone
UINone
SUnchanged
CHigh
IHigh
AHigh

What should I do?

1 step
  1. 1) Upgrade vLLM to 0.32.0 or later. 2) Check hosts and container images for Ghostscript and patch it to a version that fixes CVE-2024-29510, or remove it if it is not needed. 3) Upgrade Pillow out of the 12.0.0-12.2.0 range. 4) Until patched, restrict multimodal endpoints to authenticated, trusted clients, and block or filter EPS and other non-standard image formats at the gateway or WAF by checking magic bytes. 5) Run vLLM as an unprivileged user in a hardened container with seccomp/AppArmor profiles and egress restrictions. 6) Detect: alert on gs or other unexpected child processes spawned by the vLLM process, on spikes in media-loading worker failures or timeouts, and on image requests whose content does not match the declared MIME type.

How is it classified?

Which compliance frameworks are affected?

This CVE is relevant to:

EU AI Act
Art. 15-Accuracy, robustness and cybersecurity
ISO 42001
A.6.2.6-AI system operation and monitoring
NIST AI RMF
MANAGE 2.3-Responses to previously unknown risks
OWASP LLM Top 10
LLM03-Supply ChainLLM10-Unbounded Consumption

Frequently Asked Questions

What is CVE-2026-115915?

vLLM before 0.32.0 hands attacker-supplied image bytes to Pillow without restricting which decoders it may use, so an EPS payload disguised as a normal image can be routed to host components such as Ghostscript. On hosts with a Ghostscript build affected by CVE-2024-29510, this can lead to command execution with the vLLM process's privileges; on Pillow 12.0.0 through 12.2.0 it can exhaust media-loading workers (CVE-2026-59203). Exploitation is rated high-complexity because it depends on the vulnerable dependency being present. There is no public exploit, no Nuclei template and no KEV listing, and EPSS data is not yet available. However, vLLM is widely deployed (94 downstream dependents, 176 other CVEs in the package) and multimodal endpoints are often exposed to untrusted users. Upgrade to vLLM 0.32.0, and until then check whether Ghostscript is installed and patched and whether Pillow is in the affected range.

Is CVE-2026-115915 actively exploited?

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

How to fix CVE-2026-115915?

1) Upgrade vLLM to 0.32.0 or later. 2) Check hosts and container images for Ghostscript and patch it to a version that fixes CVE-2024-29510, or remove it if it is not needed. 3) Upgrade Pillow out of the 12.0.0-12.2.0 range. 4) Until patched, restrict multimodal endpoints to authenticated, trusted clients, and block or filter EPS and other non-standard image formats at the gateway or WAF by checking magic bytes. 5) Run vLLM as an unprivileged user in a hardened container with seccomp/AppArmor profiles and egress restrictions. 6) Detect: alert on gs or other unexpected child processes spawned by the vLLM process, on spikes in media-loading worker failures or timeouts, and on image requests whose content does not match the declared MIME type.

What systems are affected by CVE-2026-115915?

This vulnerability affects the following AI/ML architecture patterns: model serving, LLM inference, multimodal pipelines, OpenAI-compatible API gateways, GPU inference clusters.

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

CVE-2026-115915 has a CVSS v3.1 base score of 8.1 (HIGH). The EPSS exploitation probability is 0.66%.

What is the AI security impact?

Affected AI Architectures

model servingLLM inferencemultimodal pipelinesOpenAI-compatible API gatewaysGPU inference clusters

MITRE ATLAS Techniques

AML.T0010.001AI Software
AML.T0029Denial of AI Service
AML.T0040AI Model Inference API Access
AML.T0049Exploit Public-Facing Application
AML.T0050Command and Scripting Interpreter

Compliance Controls Affected

EU AI Act: Art. 15
ISO 42001: A.6.2.6
NIST AI RMF: MANAGE 2.3
OWASP LLM Top 10: LLM03, LLM10

What are the technical details?

Original Advisory

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.

Exploitation Scenario

An attacker finds a vLLM OpenAI-compatible endpoint that accepts image inputs, either by upload or by URL. They submit a request with a crafted EPS payload labelled as image/png, or host it on a URL for fetch_image() to retrieve. Pillow selects the EPS decoder from the content rather than the MIME label and passes the data to Ghostscript on the host. If Ghostscript is affected by CVE-2024-29510, the payload executes commands as the vLLM user. The attacker then steals API keys, model artifacts and cloud credentials, or moves laterally. Alternatively, a stream of malicious images ties up the media workers and takes down inference.

Weaknesses (CWE)

CWE-183 — Permissive List of Allowed Inputs: The product implements a protection mechanism that relies on a list of inputs (or properties of inputs) that are explicitly allowed by policy because the inputs are assumed to be safe, but the list is too permissive - that is, it allows an input that is unsafe, leading to resultant weaknesses.

Source: MITRE CWE corpus.

CVSS Vector

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

Timeline

Published
October 26, 2026
Last Modified
October 28, 2026
First Seen
October 26, 2026

Related Vulnerabilities