Description
Pillow is a Python imaging library. Prior to 12.3.0, Pillow's ImageCms.ImageCmsTransform.apply(im, imOut) API can trigger controlled native heap corruption when the caller supplies an output image whose mode does not match the transform's declared output mode. This issue is fixed in version 12.3.0.
Published: 2026-07-14
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A mismatch between the declared output mode of an ImageCmsTransform and the mode of the supplied output image can produce a controlled out‑of‑bounds write into native heap memory when Pillow executes ImageCmsTransform.apply(). This vulnerability is classified as CWE‑787 and can corrupt memory, potentially causing application crashes or, if exploited, arbitrary code execution.

Affected Systems

All releases of the Pillow library (python‑pillow) prior to version 12.3.0 are affected when the ImageCmsTransform.apply() method is invoked with an output image whose mode does not match the transform’s declared output mode; any Python application that imports Pillow and processes images with this API is potentially impacted.

Risk and Exploitability

The CVSS score of 7.5 indicates moderate to high severity, while the EPSS score of less than 1% and its absence from the CISA KEV catalog suggest a very low likelihood of widespread exploitation. The likely attack vector is local or via the application’s image handling component, as it requires an attacker to supply a crafted image to the library; if successful, the memory corruption could be leveraged for arbitrary code execution, though no public exploits have been reported.

Generated by OpenCVE AI on August 1, 2026 at 09:56 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Pillow to version 12.3.0 or later
  • Validate that the output image mode matches the transform’s declared mode before invoking ImageCmsTransform.apply()
  • Run image processing in a sandboxed or least‑privilege environment

Generated by OpenCVE AI on August 1, 2026 at 09:56 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-9hw9-ch79-4vh6 Pillow: Controlled heap out-of-bounds write in Pillow `ImageCmsTransform.apply()` via output mode mismatch
History

Thu, 16 Jul 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-843
References
Metrics threat_severity

None

threat_severity

Important


Tue, 14 Jul 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 14 Jul 2026 18:00:00 +0000

Type Values Removed Values Added
First Time appeared Python-pillow
Python-pillow pillow
Vendors & Products Python-pillow
Python-pillow pillow

Tue, 14 Jul 2026 16:15:00 +0000

Type Values Removed Values Added
Description Pillow is a Python imaging library. Prior to 12.3.0, Pillow's ImageCms.ImageCmsTransform.apply(im, imOut) API can trigger controlled native heap corruption when the caller supplies an output image whose mode does not match the transform's declared output mode. This issue is fixed in version 12.3.0.
Title Pillow: Controlled heap out-of-bounds write in `ImageCmsTransform.apply()` via output mode mismatch
Weaknesses CWE-787
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


Subscriptions

Python-pillow Pillow
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-14T17:31:36.064Z

Reserved: 2026-07-02T21:05:02.924Z

Link: CVE-2026-59205

cve-icon Vulnrichment

Updated: 2026-07-14T17:30:28.781Z

cve-icon NVD

No data.

cve-icon Redhat

Severity : Important

Publid Date: 2026-07-14T15:48:39Z

Links: CVE-2026-59205 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-01T10:00:04Z

Weaknesses
  • CWE-787

    Out-of-bounds Write

  • CWE-843

    Access of Resource Using Incompatible Type ('Type Confusion')