A vulnerability in the python-pillow Pillow library versions 11.2.1 through 12.x allows sensitive memory contents to be disclosed when exporting images to Arrow format with certain alignment configurations. This occurs because the export process assumes tightly contiguous image rows and may include uninitialized or stale memory in the output buffer. The issue is fixed in version 13.0.0.
A critical out-of-bounds read and write vulnerability affects the Pillow Python imaging library versions 11.0.0 up to but not including 13.0.0. The flaw arises from multi-frame image loaders reusing stale native storage without verifying mode and size consistency, leading to memory corruption. Crafted image frames in PSD, MPO, DCX, or MIC formats can trigger crashes and, in some cases, command execution. This vulnerability is fixed in Pillow version 13.0.0.
A vulnerability in the python-pillow Pillow library prior to version 13.0.0 allows crafted multi-frame MPO or DCX images to cause uncontrolled memory consumption. This occurs because later frames can declare sizes that exceed limits without triggering decompression bomb checks, leading to potential denial of service via memory exhaustion. The issue is resolved in version 13.0.0.
A vulnerability in the python-pillow Pillow library versions 5.1.0 through 12.x allows an attacker to cause uncontrolled resource consumption. The PdfParser.linearize_page_tree() function treats a PDF /Pages graph as a tree without tracking duplicate indirect references, leading to exponential expansion of page references when processing a crafted PDF. This results in disproportionate CPU usage during the append operation. The issue is fixed in version 13.0.0.
A resource consumption vulnerability exists in python-pillow Pillow versions prior to 13.0.0. The SpiderImageFile.seek() function can reparse a later SPIDER stack frame and replace the image size without rerunning the decompression bomb check, allowing an attacker to declare very large image dimensions. This can cause excessive memory allocation, potentially consuming multiple gigabytes of memory. The issue is fixed in version 13.0.0.
A heap out-of-bounds write vulnerability exists in the Pillow Python imaging library versions 9.4.0 through 12.x, fixed in 13.0.0. The flaw occurs in the JPEG encoding process when handling ICC profiles that exactly fill the 65536-byte encoder buffer, allowing an attacker-controlled comment and image data to overwrite adjacent heap memory. This can cause a crash or potentially enable code execution under certain runtime and heap conditions.
CVE-2026-96643 is a high-severity vulnerability in the python-pillow Pillow library affecting versions from 11.0.0 up to but not including 13.0.0. The flaw involves inefficient algorithmic complexity in the Exif.load() function, which processes EXIF data in image files. Specifically, an uncapped PNG eXIf chunk with repeated headers can cause quadratic CPU usage due to repeated slicing and copying operations. This issue can be triggered through common image processing workflows such as Image.getexif(), Image._getexif(), and ImageOps.exif_transpose(). The vulnerability is fixed in version 13.0.0.
CVE-2026-96644 is an out-of-bounds read vulnerability in the python-pillow Pillow library affecting Windows builds. It arises from improper handling of EMF and WMF image dimensions, where 32-bit dimensions are truncated to 16-bit fields for allocation but used fully for copying data, causing a heap over-read. This can lead to memory disclosure or application crashes when processing crafted metafiles. The flaw is fixed in Pillow version 13.0.0.
CVE-2026-96641 is an integer overflow vulnerability in the python-pillow Pillow library prior to version 13.0.0. The flaw occurs in the PILfont text-width accumulation code where negative glyph advances are not properly checked against INT_MIN, allowing a signed 16-bit advance of -32768 to cause an integer overflow. This results in a large positive width from a negative calculation, potentially causing logic errors or excessive resource consumption in applications using text layout or size calculations. The issue is fixed in Pillow version 13.0.0.
CVE-2026-96642 is a high-severity vulnerability in the Python Pillow imaging library prior to version 13.0.0. The flaw exists in the TarIO initializer, which accepts a negative octal member size and causes a backward seek that loops on the same 512-byte header. This results in an infinite loop consuming a full CPU core when the requested member name does not match. This issue only occurs when applications directly use PIL.TarIO.TarIO instead of the standard Image.open() method. The vulnerability is fixed in Pillow version 13.0.0.
A vulnerability in the BmpRleDecoder component of the python-pillow Pillow library allows crafted BMP files to cause uncontrolled memory allocation. This occurs due to unbounded growth in the delta escape and absolute mode branches during decoding, leading to a severe memory amplification denial-of-service (DoS). The flaw affects all versions before 13.0.0. A fix is available in version 13.0.0 that caps memory growth and rejects out-of-bounds deltas.
Pillow's EPS image loader allows Ghostscript to render images at a scaled size that exceeds Pillow's decompression bomb limit. This occurs because the decompression bomb check is only applied to the unscaled image size declared in the EPS file, not the scaled size requested by the application. As a result, an attacker can cause Ghostscript to generate very large temporary files, consuming excessive disk space and CPU resources. The vulnerability affects Pillow versions from 2.3.0 up to but not including 13.0.0. A patch is available to address this issue.