← Back to search

CVE-2026-96639

9.8 CRITICALpublic exploit available

Published 2026-10-21 · Updated 2026-10-22

AI risk analysis

Summary
A memory corruption flaw in Pillow versions 11.0.0–13.0.0 allows attackers to trigger out-of-bounds writes (CWE-787) and reads (CWE-125) when processing multi-frame images like PSD, MPO, DCX, or MIC. The vulnerability arises when frame mode/size changes between frames but the internal buffer is reused without validation, enabling crafted files to overwrite memory beyond allocated bounds.
Exploitability
Exploitation requires delivering a specially crafted multi-frame image file to an application using Pillow; no authentication or user interaction is needed (CVSS:3.1/AV:N/AC:L/PR:N/UI:N), and public PoCs exist, indicating low effort to exploit.
Blast radius
Successful exploitation could lead to remote code execution (demonstrated in MPO path), data exfiltration, or service crashes, affecting any system processing untrusted images via Pillow.
Detection
No reliable host or network indicator is derivable from the published description.
Prioritized remediation
Upgrade Pillow to version 13.0.0 or later, as this issue is fixed in that release.
memory-corruptionrceimage-processingmulti-frameout-of-bounds

Analysis generated locally by garnet-coder (no data left the box). AI-assisted — verify against primary sources before acting.

NVD description

Pillow is a Python imaging library. From 11.0.0 until 13.0.0, multi-frame loaders can retain an ImagingCore allocation created for a narrow frame mode while a later frame of the same dimensions changes the logical mode and decoder tiles to wider RGB or CMYK data. ImageFile.load_prepare() reuses the stale native storage because _im is non-null without verifying that its mode and size still match. Crafted PSD, MPO, DCX, or MIC frame transitions can then write wider pixels into the narrow allocation, causing native out-of-bounds writes and crashes. The MPO path can also cause a native over-read and, in demonstrated runtime-specific profiles, command execution. This issue is fixed in version 13.0.0.

CVSS vector

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

Weaknesses

CWE-125, CWE-787

Public exploit & PoC references

All references

Source data: NVD (nvd.nist.gov), public domain. Exploit-DB.ai adds local AI analysis for defensive use only.

Related CVEs

Related by shared AI tags and CWE weakness class. Browse the full archive.