Advisories for Pypi/Pillow package

2024
2023

Pillow Denial of Service vulnerability

An issue was discovered in Pillow before 10.0.0. It is a Denial of Service that uncontrollably allocates memory to process a given task, potentially causing a service to crash by having it run out of memory. This occurs for truetype in ImageFont when textlength in an ImageDraw instance operates on a long text argument.

Out-of-bounds Write

Heap buffer overflow in libwebp in Google Chrome prior to 116.0.5845.187 and libwebp 1.3.2 allowed a remote attacker to perform an out-of-bounds memory write via a crafted HTML page. (Chromium security severity: Critical)

2022

Buffer over-flow in Pillow

When reading a TGA file with RLE packets that cross scan lines, Pillow reads the information past the end of the first line without deducting that from the length of the remaining file data. This vulnerability was introduced in Pillow 9.1.0, and can cause a heap buffer overflow. Opening an image with a zero or negative height has been found to bypass a decompression bomb check. This will now raise …

Infinite loop in Pillow

JpegImagePlugin may append an EOF marker to the end of a truncated file, so that the last segment of the data will still be processed by the decoder. If the EOF marker is not detected as such however, this could lead to an infinite loop where JpegImagePlugin keeps trying to end the file.

2021

Buffer Overflow

Pillow and PIL (aka Python Imaging Library) allow an attacker to pass controlled parameters directly into a convert function to trigger a buffer overflow in Convert.c.

Uncontrolled Resource Consumption

An issue was discovered in Pillow For EPS data, the readline implementation used in EPSImageFile has to deal with any combination of \r and \n as line endings. It used an accidentally quadratic method of accumulating lines while looking for a line ending. A malicious EPS file could use this to perform a DoS of Pillow in the open phase, before an image was accepted for opening.

Unchecked Return Value

An issue was discovered in Pillow PSDImagePlugin.PsdImageFile lacked a sanity check on the number of input layers relative to the size of the data block. This could lead to a DoS on Image.open prior to Image.load.

Uncontrolled Resource Consumption in pillow

Impact Pillow before 8.1.1 allows attackers to cause a denial of service because the reported size of a contained image is not properly checked for a BLP container, and thus an attempted memory allocation can be very large. Patches An issue was discovered in Pillow before 6.2.0. When reading specially crafted invalid image files, the library can either allocate very large amounts of memory or take an extremely long period …

Out-of-bounds Write

An issue was discovered in Pillow TiffDecode has a heap-based buffer overflow when decoding crafted YCbCr files because of certain interpretation conflicts with LibTIFF in RGBA mode.

Improper Input Validation

An issue was discovered in Pillow The PDF parser allows a regular expression DoS (ReDoS) attack via a crafted PDF file because of a catastrophic backtracking regex.

Uncontrolled Resource Consumption

Pillow allows attackers to cause a denial of service (memory consumption) because the reported size of a contained image is not properly checked for a BLP container, and thus an attempted memory allocation can be very large.

Uncontrolled Resource Consumption

Pillow allows attackers to cause a denial of service (memory consumption) because the reported size of a contained image is not properly checked for an ICO container, and thus an attempted memory allocation can be very large.

Uncontrolled Resource Consumption

Pillow allows attackers to cause a denial of service (memory consumption) because the reported size of a contained image is not properly checked for an ICNS container, and thus an attempted memory allocation can be very large.

Out-of-bounds Write

In Pillow, TiffDecode has a heap-based buffer overflow when decoding crafted YCbCr files because of certain interpretation conflicts with LibTIFF in RGBA mode.

Out-of-bounds Read

In Pillow, SGIRleDecode has a 4-byte buffer over-read when decoding crafted SGI RLE image files because offsets and length tables are mishandled.

Out-of-bounds Read

In Pillow, PcxDecode has a buffer over-read when decoding a crafted PCX file because the user-supplied stride value is trusted for buffer calculations.

2020

Out-of-bounds Read

In libImaging/PcxDecode.c in Pillow, an out-of-bounds read can occur when reading PCX files where state->shuffle is instructed to read beyond state->buffer.

Out-of-bounds Read

In libImaging/SgiRleDecode.c in Pillow, a number of out-of-bounds reads exist in the parsing of SGI image files, a different issue than CVE-2020-5311.

Integer Overflow or Wraparound

There is a DoS vulnerability in Pillow before 6.2.2 caused by FpxImagePlugin.py calling the range function on an unvalidated 32-bit integer if the number of bands is large. On Windows running 32-bit Python, this results in an OverflowError or MemoryError due to the 2 GB limit. However, on Linux running 64-bit Python this results in the process being terminated by the OOM killer.

2019
2017
2016

Sign Extension in Storage.c

Pillow allows context-dependent attackers to execute arbitrary code by using the "crafted image file" approach, related to an "Insecure Sign Extension" issue affecting the ImagingNew in Storage.c component.

Integer overflow in Map.c

Pillow allows context-dependent attackers to obtain sensitive information by using the "crafted image file" approach, related to an "Integer Overflow" issue affecting the Image.core.map_buffer in map.c component.

2015

PNG decompression DOS

A flaw in PngImagePlugin.py is triggered when handling PNG image decompression. This may allow a remote attacker to cause a denial of service.

2014

Denial of Service

There is a flaw that is triggered when handling zero-length block headers. This may allow a remote attacker to crash the program.

Command Injection

Pillow might allow remote attackers to execute arbitrary commands via shell metacharacters in unspecified vectors related to CVE-2014-1932, possibly JpegImagePlugin.py.

Temporary file name leakage

In JpegImagePlugin.py, the load_jpeg(self) method generates a temporary file name and sends it to an external process. It is possible to alter the target file before it is read since the command line arguments are not kept secret.

Insecure use of tempfile.mktemp

In JpegImagePlugin.py, the load_jpeg(self) method makes an unsafe call to tempfile.mktemp(). It is possible to alter the temporary file between the moment the file is generated and the moment it is used.