CVE Catalog

CVE-2026-96643

HighCVSS 7.1
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.33%

25th percentile - higher than 25% of all known CVEs

Summary

In Pillow from 11.0.0 until 13.0.0, Exif.load() in src/PIL/Image.py repeatedly slices the remaining EXIF data while it begins with the six-byte Exif header. Because src/PIL/PngImagePlugin.py accepts an uncapped PNG eXIf chunk, a file filled with repeated headers causes a new shrinking copy on every iteration and quadratic CPU work. The condition is reachable through Image.getexif(), Image._getexif(), and ImageOps.exif_transpose(), including common photo-upload rotation workflows. This issue is fixed in version 13.0.0.

Risk Assessment

An attacker can supply a crafted image file that, when processed by an application, exhausts CPU resources, causing slowdown or denial of service.

Recommendation

Upgrade Pillow to version 13.0.0 or later and limit the size and validate uploaded image files.

Other vulnerabilities in Pillow

See all
Original NVD description (English source)

Pillow is a Python imaging library. From 11.0.0 until 13.0.0, Exif.load() in src/PIL/Image.py repeatedly slices the remaining EXIF data while it begins with the six-byte Exif header. src/PIL/PngImagePlugin.py accepts an uncapped PNG eXIf chunk, so a file filled with repeated headers causes a new shrinking copy on every iteration and quadratic CPU work. The condition is reachable through Image.getexif(), Image._getexif(), and ImageOps.exif_transpose(), including common photo-upload rotation workflows. This issue is fixed in version 13.0.0.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS