CVE Catalog

CVE-2026-112403

CriticalCVSS 9.2
Published: Translated: NVD NIST

Summary

Pillow prior to 13.0.0 has a JPEG decoder vulnerability where a full-width scanline can be written into a buffer sized for a requested draft scale. ImagingJpegDecode does not verify libjpeg's actual output width after scaling, and an 8-bit lossless SOF3 JPEG decoded by libjpeg-turbo 3.x can ignore the requested downscaling geometry.

Risk Assessment

Supplying a crafted JPEG to an application using draft() or thumbnail() can corrupt heap memory, crash the process, or potentially allow code execution.

Recommendation

Update Pillow to version 13.0.0 or later.

Other vulnerabilities in Pillow

See all
Original NVD description (English source)

Pillow is a Python imaging library. Prior to 13.0.0, Pillow's JPEG decoder can write a full-width scanline into a buffer sized for a requested draft scale. ImagingJpegDecode does not verify libjpeg's actual output width and component count after scaling is requested, and an 8-bit lossless SOF3 JPEG decoded by a build linked to libjpeg-turbo 3.x can ignore the requested downscaling geometry. An attacker can supply such a JPEG to an application that uses draft() or thumbnail() to request downscaling. This can corrupt heap memory, crash the process, or potentially allow code execution. Older libjpeg-turbo 2.x and IJG builds reject the SOF3 input. This issue is fixed in version 13.0.0.

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