Description
Pillow is a Python imaging library. From 12.0.0 until 13.0.0, Pillow's Image.merge() can dereference a null image8 plane. Validation skips the first input band, allowing a 32-bit integer or floating-point image backed by image32 storage to be merged as a narrower multiband image. A crafted IPTC file can reach this path when an application opens and loads it, or a caller can invoke Image.merge() directly with such a first band. This causes a native process crash. This issue is fixed in version 13.0.0.
Published: 2026-10-19
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: Native process crash (Denial of Service)
Action: Apply Patch
AI Analysis

Impact

The vulnerability is a NULL pointer dereference that occurs when Pillow's Image.merge processes a first input band that is not validated, allowing a 32‑bit integer or floating‑point image backed by image32 storage to be merged as a narrower multiband image. This leads to a native process crash when a crafted IPTC file is loaded or when Image.merge is invoked directly with such data. The crash represents a denial‑of‑service condition affecting the application process.

Affected Systems

Python‑Pillow Pillow versions 12.0.0 up to but not including 13.0.0 are affected. Any application that uses this library between those releases without updating is vulnerable.

Risk and Exploitability

The CVSS score of 8.7 indicates high severity. The EPSS score is not available, and the vulnerability is not listed in CISA KEV, suggesting it is not a widely exploited critical flaw yet. An attacker can trigger the crash by crafting an IPTC file that contains the problematic first band or by calling Image.merge directly with malicious data, causing the target application to terminate. Because this is a crash and not a remote code execution, the risk is limited to disrupting availability rather than compromising confidentiality or integrity. The likely attack vector is local or remote file ingestion by a Python application that trusts image sources.

Generated by OpenCVE AI on October 20, 2026 at 06:58 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Pillow to version 13.0.0 or newer.
  • If the application must handle untrusted image files, validate or sanitize the first band before invoking Image.merge to ensure it is not a NULL pointer or unsupported datatype.
  • As an interim measure, avoid using Image.merge with external data from untrusted sources until the library can be updated.

Generated by OpenCVE AI on October 20, 2026 at 06:58 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-cp9v-662q-vvx9 Pillow: NULL pointer dereference in Image.merge via an unvalidated band 0
History

Tue, 27 Oct 2026 15:15:00 +0000

Type Values Removed Values Added
First Time appeared Python
Python pillow
CPEs cpe:2.3:a:python:pillow:*:*:*:*:*:*:*:*
Vendors & Products Python
Python pillow

Tue, 20 Oct 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Tue, 20 Oct 2026 12:45:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

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'}

threat_severity

Important


Mon, 19 Oct 2026 22:45:00 +0000

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

Mon, 19 Oct 2026 21:45:00 +0000

Type Values Removed Values Added
Description Pillow is a Python imaging library. From 12.0.0 until 13.0.0, Pillow's Image.merge() can dereference a null image8 plane. Validation skips the first input band, allowing a 32-bit integer or floating-point image backed by image32 storage to be merged as a narrower multiband image. A crafted IPTC file can reach this path when an application opens and loads it, or a caller can invoke Image.merge() directly with such a first band. This causes a native process crash. This issue is fixed in version 13.0.0.
Title Pillow: NULL pointer dereference in Image.merge via an unvalidated band 0
Weaknesses CWE-476
References
Metrics cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Python Pillow
Python-pillow Pillow
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-20T15:56:29.299Z

Reserved: 2026-10-19T16:58:51.960Z

Link: CVE-2026-112405

cve-icon Vulnrichment

Updated: 2026-10-20T15:56:09.083Z

cve-icon NVD

Status : Analyzed

Published: 2026-10-19T22:17:08.027

Modified: 2026-10-27T14:59:59.923

Link: CVE-2026-112405

cve-icon Redhat

Severity : Important

Publid Date: 2026-10-19T21:29:53Z

Links: CVE-2026-112405 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-20T07:00:13Z

Weaknesses