Vulnerabilities

Security fix · CVE-2026-96644

Pillow is a Python imaging library.

Published Oct 21, 2026 · catalog updated Oct 28, 2026 · Pillow is a Python

Last checked Oct 31, 2026. A connected source was read within the last 7 days.

Check if you run it

No confirmed exploitation is on record for CVE-2026-96644. EPSS is 0.38%. Act only if a listed version of Pillow is a Python is installed.

Gaps on this record

  • The stored product name is a package slug. The name on this page is taken from the title (Pillow is a Python).
  • No vendor fix or required action is stored. Compare the linked advisory before you change production.
Severity
High7.1
Known exploitation
Not in CISA/VulnCheck KEV
EPSS
0.38%
Remediation
Version ranges on file
Affected products
PyPI pillow · pip Pillow · pypi pillow

### Summary On Windows builds, Pillow stores EMF and WMF image dimensions without a range check and passes them to the native handler. That code sizes its allocation from dimensions truncated into 16-bit header fields but copies the result using the full 32-bit dimensions. A crafted metafile that is wide and short passes the decompression-bomb pixel check yet causes a heap over-read. ### Details The EMF branch computes the size straight from signed 32-bit header fields and stores it with no positivity or range check: - reads the bounding box; stores it; the size reaches the native handler through . In the native handler the DIB header fields and are 16-bit and truncate the allocation, while the copy length uses the untruncated ints: - assign the 16-bit fields - sizes the allocation from them - copies bytes using the full values The whole handler is compiled only on Windows ( , ). ### PoC On Linux the first part is observable: the 88-byte file opens, is , and the bomb check passes. The native over-read only exists on Windows because is compiled out elsewhere (on Linux raises instead). ### Impact CWE-125, out-of-bounds read in a C extension on Windows builds. A crafted EMF or WMF that passes the pixel check can read past a heap buffer, leaking memory or crashing the process.

Are you affected?

Enter the version you run. The result uses only the ranges stored on this record.

The check returns affected, not affected, or incomplete. It does not guess a version that is missing from the record.

  • PyPI pillow0 → 13.0.0
  • pip Pillow< 13.0.0
  • pypi pillowversion unspecified

How to fix CVE-2026-96644

What to do

Three questions, each answered from this record only. Confirm the vendor advisory before you patch.

Should you patch?

No confirmed exploitation is on record for CVE-2026-96644. EPSS is 0.38%. Act only if a listed version of Pillow is a Python is installed.

Which versions are affected?

Compare what you have installed with Pillow < 13.0.0. Compare the installed version with the linked vendor advisory before you change production.

What should an analyst verify?

CWE-125: Out-of-bounds Read. EPSS 0.38%. There is no CISA KEV listing. No Exploit-DB or Metasploit reference is linked. Use the source links for the original advisory.

Technology hubs

Code

The project this record applies to. Exploit listings stay in References.

Timeline

Detection, updates, and resolution for this record.

  1. Oct 21, 2026 · NIST NVD

    Detected

    Pillow is a Python imaging library. Prior to 13.0.0 on Windows, src/PIL/WmfImagePlugin.py passes unchecked 32-bit WMF or EMF dimensions to the native drawwmf handler in src/display.c. The handler sizes a DIB allocation from 16-bit-truncated bcWidth and bcHeight fields but copies pixel data using the original full dimensions. A crafted wide, short metafile can pass the pixel-count decompression-bom

  2. Oct 22, 2026 · GitHub Advisory Database

    Updated

    ### Summary On Windows builds, Pillow stores EMF and WMF image dimensions without a range check and passes them to the native handler. That code sizes its allocation from dimensions truncated into 16-bit header fields but copies the result using the full 32-bit dimensions. A crafted metafile that is wide and short passes the decompression-bomb pixel check yet causes a heap over-read. ### Details T

  3. Oct 28, 2026 · PyPA Advisory Database

    Fix available

    pillow fixed in 13.0.0

  4. Oct 28, 2026 · PyPA Advisory Database

    Fix available

    pillow fixed in 13.0.0

  5. Oct 28, 2026 · PyPA Advisory Database

    Updated

    ### Summary On Windows builds, Pillow stores EMF and WMF image dimensions without a range check and passes them to the native handler. That code sizes its allocation from dimensions truncated into 16-bit header fields but copies the result using the full 32-bit dimensions. A crafted metafile that is wide and short passes the decompression-bomb pixel check yet causes a heap over-read. ### Details T

Sources

  • CVE.orgVulnerability recordCVE-2026-96644

    Official CVE identifier

    cve.org
  • FIRST EPSSExploitation probabilityCVE-2026-96644

    30-day exploitation probability 0.38%

    first.org
  • GitHub Advisory DatabasePackage advisoryGHSA-9v9v-9qvf-h2hj

    Pillow: Heap over-read in WMF/EMF rendering via 16-bit dimension truncation (Windows builds)

    github.com
  • GitLab Advisory DatabasePackage advisoryCVE-2026-96644

    On Windows builds, Pillow stores EMF and WMF image dimensions without a range check and passes them to the native drawwmf handler. That code sizes its allocation from dimensions truncated into 16-bit header fields but copies the result using the full 32-bit dimensions. A crafted metafile that is wide and short passes the decompression-bomb pixel check yet causes a heap over-read.

    advisories.gitlab.com
  • NIST NVDVulnerability recordCVE-2026-96644

    Pillow is a Python imaging library. Prior to 13.0.0 on Windows, src/PIL/WmfImagePlugin.py passes unchecked 32-bit WMF or EMF dimensions to the native drawwmf handler in src/display.c. The handler sizes a DIB allocation from 16-bit-truncated bcWidth and bcHeight fields but copies

    nvd.nist.gov
  • PyPA Advisory DatabasePackage advisoryGHSA-9v9v-9qvf-h2hj

    Pillow: Heap over-read in WMF/EMF rendering via 16-bit dimension truncation (Windows builds)

    osv.dev

References

Freshness

Last verified in this catalog Oct 31, 2026. Significant claims (KEV, EPSS, CVSS, affected ranges) come from the source rows above — open the original publisher for the authoritative advisory.

  • PyPA Advisory DatabaseOct 28, 2026
  • FIRST EPSSOct 28, 2026
  • GitLab Advisory DatabaseOct 23, 2026
  • GitHub Advisory DatabaseOct 23, 2026
  • CVE.orgOct 22, 2026
  • NIST NVDOct 22, 2026