CVE-2026-96639 Pillow multi-frame loaders can reuse stale native image storage after mode transitions

Critical 9.8 Published Updated
Exploited in the wild
Not known
Fix
Available

What is CVE-2026-96639?

CVE-2026-96639 is a critical vulnerability in Python Pillow, published on 21 Oct 2026.

Official 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.

Weakness: CWE-787, CWE-125

Which versions are affected by CVE-2026-96639?

4 open source packages ship an affected version, including pillow and Pillow. It affects 1 product.

PackageAffectedFixed in
pillow BitnamiFrom 11.0.013.0.0
pillow PyPIFrom 11.0.013.0.0
pillow PyPIFrom 11.0.013.0.0
Pillow PyPIFrom 11.0.013.0.0

Products include Python Pillow.

How do I fix CVE-2026-96639?

Upgrade pillow to 13.0.0 or later.

Is CVE-2026-96639 being exploited?

There is no known exploitation of CVE-2026-96639 in the wild and no public exploit code.

All Python Pillow vulnerabilities

Sources

Also known as BIT-pillow-2026-96639, DEBIAN-CVE-2026-96639, ECHO-68a5-bb35-54de, GHSA-v9pv-5gc8-w2m6, PYSEC-2026-4339, ROOT-APP-PYPI-CVE-2026-96639 and 1 more.

Is CVE-2026-96639 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free