CVE-2026-59199: Pillow heap out-of-bounds write in image coordinate APIs

CVE-2026-59199 · Severity: high · CVSS 7.5 · Published 2026-07-14

Pillow, a popular Python library for image processing, contains a vulnerability that can cause a system crash or allow unauthorized memory modification. By providing specific, extreme coordinates to image functions like cropping or pasting, an attacker could trigger a memory error. This could lead to application instability or potentially be used as a building block for more complex attacks if the application processes untrusted coordinate data.

Technologies: pillow (PyPI). Vendors: PyPI.

Quick answers

Is CVE-2026-59199 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-59199 being exploited in the wild.
How severe is CVE-2026-59199?
High severity, with a CVSS score of 7.5, published 14 July 2026.
Which products and versions are affected?
pillow (PyPI) < 12.3.0, ECOSYSTEM:introduced=0,fixed=12.3.0.
Is there a fix for CVE-2026-59199?
Yes. pillow (PyPI): upgrade to 12.3.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-59199 attacked?
It is attacked with local access, in a software library.
Am I affected by CVE-2026-59199?
Check whether you run pillow (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • pillow (PyPI): upgrade to 12.3.0 or later
    pip install "pillow>=12.3.0"

Technical details

A heap out-of-bounds write exists in Pillow's native C extension due to signed integer overflow in coordinate arithmetic. In `src/libImaging/Paste.c`, the `ImagingPaste()` function calculates image dimensions using signed 32-bit integers; providing coordinates near `INT_MIN` or `INT_MAX` causes these calculations to wrap around, bypassing boundary checks. In 4-byte pixel modes like RGBA, this results in a controlled backward heap underwrite via `memcpy`. The vulnerability is reachable through public APIs including `Image.paste()`, `Image.crop()`, and `Image.alpha_composite()`. The issue is fixed in version 12.3.0 by implementing checked arithmetic and wider integer types for coordinate calculations.

Affected products

  • python-pillow Pillow < 12.3.0

Identifiers

  • CVE-2026-59199
  • GHSA-6r8x-57c9-28j4
  • PYSEC-2026-3451

Timeline

  • 2026-07-07: advisory: Initial GitHub Advisory published
  • 2026-07-20: disclosed
  • 12.3.0: patched

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.