CVE-2026-96639: critical vulnerability in python-pillow Pillow
Pillow multi-frame loaders can reuse stale native image storage after mode transitions
Published · Updated
E-mail alert when it lands in KEV, gets a public PoC or its score goes up.
28Vexday Risk Score
No sign of exploitation. No public exploitation artifact known so far.
ssvc Trackcvss 9.8epss 0.7%
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:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Affected products
python-pillow · PillowRelated CVEs — python-pillow Pillow
In the same product, most dangerous first.
CVE-2026-112900CRITICALPillow: Argument Injection in Ghostscript call, potentially leading into RCEEPSS 1.3%CVE-2026-112393CRITICALPillow: Heap buffer overflow in _tiffWriteProc when saving TIFF to BytesIOEPSS 1.0%CVE-2026-112403CRITICALPillow: Heap buffer overflow in ImagingJpegDecodeEPSS 0.9%CVE-2026-112398CRITICALPillow: Heap buffer overflow in FlashPix (FPX) JPEG decoding leads to code executionEPSS 0.7%CVE-2026-112396MEDIUMPillow: Heap use-after-free when encoding TIFF to an in-memory bufferEPSS 0.7%CVE-2026-40192HIGHPillow is vulnerable to a FITS GZIP decompression bombEPSS 0.7%