Description
Pillow is a Python imaging library. From 11.2.1 until 13.0.0, Arrow export assumes that an image's rows are tightly contiguous and exports from im->blocks[0].ptr even when PILLOW_ALIGNMENT makes aligned_linesize include row padding or an aligned offset before the first row. The resulting Arrow buffer can include uninitialized padding, bytes preceding the first row, or stale heap contents from previously freed images. Applications that configure alignment and export images to Arrow can therefore disclose one user's pixels or other process memory to another user. This issue is fixed in version 13.0.0.
Published: 2026-10-21
Score: 6.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Information Disclosure
Action: Immediate Patch
AI Analysis

Impact

This vulnerability resides in Pillow’s Arrow export routine. When the configuration variable PILLOW_ALIGNMENT is set to a value greater than one, the routine incorrectly assumes that image data rows are tightly contiguous. As a result, the exported Arrow buffer may include uninitialized padding, bytes that precede the first image row, or stale heap contents from previously freed images. An application that performs Arrow export with such an alignment value can inadvertently leak another user’s pixel data or arbitrary process memory, leading to unintended disclosure of sensitive information.

Affected Systems

The flaw is present in the python-pillow Pillow library for versions 11.2.1 through 12.x, inclusive. The issue was addressed and fixed in Pillow 13.0.0; any releases from 13.0.0 onward are not affected. The CNA lists the product as python-pillow:Pillow.

Risk and Exploitability

The CVSS score of 6.3 classifies the issue as moderate severity. The EPSS score is not available and the vulnerability is not listed in the CISA KEV catalog, indicating a low probability of widespread exploitation at present. An attacker must drive an application to use Arrow export with a custom alignment setting greater than one; this can be achieved by influencing configuration or by providing images with specific metadata. Once the alignment condition is met, the memory leakage can expose sensitive pixel data or arbitrary heap contents from other users, compromising confidentiality.

Generated by OpenCVE AI on October 22, 2026 at 04:49 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Pillow to version 13.0.0 or newer to obtain the fix for the Arrow export memory leakage.
  • If upgrading immediately is not an option, set PILLOW_ALIGNMENT to 1 or disable Arrow export entirely to avoid the leaking window.
  • Review all application logic that calls Pillow’s Arrow export and ensure it does not process untrusted image data or expose the Arrow buffers to untrusted consumers; audit the code paths to eliminate accidental exposure of sensitive memory.

Generated by OpenCVE AI on October 22, 2026 at 04:49 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-654x-cwwv-5j9c Pillow: Arrow export leaks stale heap memory when PILLOW_ALIGNMENT > 1
History

Fri, 30 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, 27 Oct 2026 14:45: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
Metrics cvssV3_1

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

cvssV3_1

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


Thu, 22 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

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

threat_severity

Low


Thu, 22 Oct 2026 02:15:00 +0000

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

Wed, 21 Oct 2026 21:30:00 +0000

Type Values Removed Values Added
Description Pillow is a Python imaging library. From 11.2.1 until 13.0.0, Arrow export assumes that an image's rows are tightly contiguous and exports from im->blocks[0].ptr even when PILLOW_ALIGNMENT makes aligned_linesize include row padding or an aligned offset before the first row. The resulting Arrow buffer can include uninitialized padding, bytes preceding the first row, or stale heap contents from previously freed images. Applications that configure alignment and export images to Arrow can therefore disclose one user's pixels or other process memory to another user. This issue is fixed in version 13.0.0.
Title Pillow: Arrow export leaks stale heap memory when PILLOW_ALIGNMENT > 1
Weaknesses CWE-226
CWE-908
References
Metrics cvssV4_0

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


Subscriptions

Python Pillow
Python-pillow Pillow
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-30T16:10:03.645Z

Reserved: 2026-10-21T16:15:06.491Z

Link: CVE-2026-114501

cve-icon Vulnrichment

Updated: 2026-10-30T16:09:34.255Z

cve-icon NVD

Status : Modified

Published: 2026-10-21T22:16:49.410

Modified: 2026-10-30T17:17:14.473

Link: CVE-2026-114501

cve-icon Redhat

Severity : Low

Publid Date: 2026-10-21T21:17:09Z

Links: CVE-2026-114501 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-22T05:00:14Z

Weaknesses
  • CWE-226

    Sensitive Information in Resource Not Removed Before Reuse

  • CWE-908

    Use of Uninitialized Resource