Python-Pillow Pillow vulnerabilities
58 known vulnerabilities affecting python-pillow/pillow.
Total CVEs
58
CISA KEV
0
Public exploits
0
Exploited in wild
0
Severity breakdown
CRITICAL6HIGH39MEDIUM13
Vulnerabilities
Page 3 of 3
CVE-2026-59203P3HIGHCVSS 7.5v>= 12.0.0, < 12.3.02026-07-14
CVE-2026-59203 [HIGH] CWE-835 CVE-2026-59203: Pillow is a Python imaging library. From 12.0.0 through 12.2.0, Pillow's EPS parser in PIL/EpsImageP
Pillow is a Python imaging library. From 12.0.0 through 12.2.0, Pillow's EPS parser in PIL/EpsImagePlugin.py accepts a negative byte count in the %%BeginBinary directive, allowing a crafted EPS file to cause Image.open() to seek backwards to the same directive and parse it repeatedly in an infinite loop. This issue is fixed in version 12.3.0.
nvd
CVE-2026-59200P3HIGHCVSS 7.5v>= 5.1.0, < 12.3.02026-07-14
CVE-2026-59200 [HIGH] CWE-400 CVE-2026-59200: Pillow is a Python imaging library. From 5.1.0 until 12.3.0, PdfParser.PdfStream.decode() in PIL/Pdf
Pillow is a Python imaging library. From 5.1.0 until 12.3.0, PdfParser.PdfStream.decode() in PIL/PdfParser.py calls zlib.decompress() with bufsize set to the PDF stream Length field without bounding the decompressed output size, allowing a crafted FlateDecode PDF stream to exhaust memory from a small file. This issue is fixed in version 12.3.0.
nvd
CVE-2026-112898P3MEDIUMCVSS 6.9v>= 9.1.0, < 13.0.02026-10-19
CVE-2026-112898 [MEDIUM] CWE-457 CVE-2026-112898: Pillow is a Python imaging library. From 9.1.0 until 13.0.0, Pillow can disclose uninitialized stack
Pillow is a Python imaging library. From 9.1.0 until 13.0.0, Pillow can disclose uninitialized stack memory when Image.quantize() uses an empty palette. ImagingPaletteCacheUpdate() leaves a local cache array uninitialized when the palette has zero entries, and the conversion path emits those bytes as output pixel indices. An attacker who controls
nvd
CVE-2026-114501P3MEDIUMCVSS 6.3v>= 11.2.1, < 13.0.02026-10-21
CVE-2026-114501 [MEDIUM] CWE-226 CVE-2026-114501: Pillow is a Python imaging library. From 11.2.1 until 13.0.0, Arrow export assumes that an image's r
Pillow is a Python imaging library. From 11.2.1 until 13.0.0, Arrow export assumes that an image's rows are tightly contiguous and exports from im->blocks[0].ptr even when PILLOW_ALIGNMENT makes aligned_linesize include row padding or an aligned offset before the first row. The resulting Arrow buffer can include uninitialized padding, bytes preced
nvd
CVE-2026-112401P3MEDIUMCVSS 6.9v>= 5.4.0, < 13.0.02026-10-19
CVE-2026-112401 [MEDIUM] CWE-407 CVE-2026-112401: Pillow is a Python imaging library. From 5.4.0 until 13.0.0, Pillow performs quadratic copying while
Pillow is a Python imaging library. From 5.4.0 until 13.0.0, Pillow performs quadratic copying while parsing GIF comments. GifImageFile._seek() repeatedly appends immutable bytes for comment sub-blocks and multiple comment extensions, and frame zero is parsed during Image.open(). An attacker can submit a small-dimension GIF containing many comment
nvd
CVE-2026-112901P3MEDIUMCVSS 6.9fixed in 13.0.02026-10-19
CVE-2026-112901 [MEDIUM] CWE-1333 CVE-2026-112901: Pillow is a Python imaging library. Prior to 13.0.0, Pillow's XBM header parser is vulnerable to reg
Pillow is a Python imaging library. Prior to 13.0.0, Pillow's XBM header parser is vulnerable to regular-expression denial of service. In XbmImageFile._open, when an application calls Image.open() on a small crafted XBM file, XbmImagePlugin applies a backtracking expression to the attacker-controlled header before image dimensions are accepted, s
nvd
CVE-2026-96643P3HIGHCVSS 7.1v>= 11.0.0, < 13.0.02026-10-21
CVE-2026-96643 [HIGH] CWE-407 CVE-2026-96643: Pillow is a Python imaging library. From 11.0.0 until 13.0.0, Exif.load() in src/PIL/Image.py repeat
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
nvd
CVE-2026-96644P3HIGHCVSS 7.1fixed in 13.0.02026-10-21
CVE-2026-96644 [HIGH] CWE-125 CVE-2026-96644: Pillow is a Python imaging library. Prior to 13.0.0 on Windows, src/PIL/WmfImagePlugin.py passes unc
Pillow is a Python imaging library. Prior to 13.0.0 on Windows, src/PIL/WmfImagePlugin.py passes unchecked 32-bit WMF or EMF dimensions to the native drawwmf handler in src/display.c. The handler sizes a DIB allocation from 16-bit-truncated bcWidth and bcHeight fields but copies pixel data using the original full dimensions. A crafted wide, short meta
nvd
CVE-2026-96637P3HIGHCVSS 7.1fixed in 13.0.02026-10-21
CVE-2026-96637 [HIGH] CWE-400 CVE-2026-96637: Pillow is a Python imaging library. Prior to 13.0.0, SpiderImageFile.seek() in src/PIL/SpiderImagePl
Pillow is a Python imaging library. Prior to 13.0.0, SpiderImageFile.seek() in src/PIL/SpiderImagePlugin.py reparses a later SPIDER stack frame and replaces self._size without rerunning Image._decompression_bomb_check(). A tiny file can use a safe first frame to pass Image.open() and then declare very large dimensions in a later mode F frame. Loading
nvd
CVE-2026-96642P3HIGHCVSS 7.1fixed in 13.0.02026-10-21
CVE-2026-96642 [HIGH] CWE-835 CVE-2026-96642: Pillow is a Python imaging library. Prior to 13.0.0, the TarIO initializer in src/PIL/TarIO.py accep
Pillow is a Python imaging library. Prior to 13.0.0, the TarIO initializer in src/PIL/TarIO.py accepts a negative octal member size and computes a backward seek that returns to the same 512-byte header. When the requested member name does not match, the parser repeatedly reads that header, consumes a full CPU core, and never returns. TarIO is reached
nvd
CVE-2026-96641P4MEDIUMCVSS 6.5fixed in 13.0.02026-10-21
CVE-2026-96641 [MEDIUM] CWE-190 CVE-2026-96641: Pillow is a Python imaging library. Prior to 13.0.0, PILfont text-width accumulation in src/_imaging
Pillow is a Python imaging library. Prior to 13.0.0, PILfont text-width accumulation in src/_imaging.c checks positive glyph advances against INT_MAX but does not check negative advances against INT_MIN. Repeating a signed 16-bit advance of -32768 can therefore execute a signed C integer overflow in xsize += dx, producing a large positive width from
nvd
CVE-2026-96638P4MEDIUMCVSS 6.5v>= 9.1.0, < 13.0.02026-10-21
CVE-2026-96638 [MEDIUM] CWE-400 CVE-2026-96638: Pillow is a Python imaging library. From 9.1.0 until 13.0.0, BmpRleDecoder.decode() in src/PIL/BmpIm
Pillow is a Python imaging library. From 9.1.0 until 13.0.0, BmpRleDecoder.decode() in src/PIL/BmpImagePlugin.py permits crafted RLE BMP delta escapes and absolute-mode runs to append beyond the remaining dest_length without a per-branch cap. A delta can add roughly 255 image rows in one iteration, so a kilobyte-sized file with a large but permitted
nvd
CVE-2026-96636P4MEDIUMCVSS 6.5fixed in 13.0.02026-10-21
CVE-2026-96636 [MEDIUM] CWE-400 CVE-2026-96636: Pillow is a Python imaging library. Prior to 13.0.0, MpoImageFile.seek() and DcxImageFile.seek() rep
Pillow is a Python imaging library. Prior to 13.0.0, MpoImageFile.seek() and DcxImageFile.seek() reparse later MPO or DCX frames and replace self._size without rerunning Image._decompression_bomb_check(). A crafted multi-frame image can use a tiny first frame to pass Image.open() and then declare an over-limit later frame. Normal frame iteration thr
nvd
CVE-2025-48379P4MEDIUMCVSS 5.5v>= 11.2.0, < 11.3.02025-07-01
CVE-2025-48379 [MEDIUM] CWE-122 CVE-2025-48379: Pillow is a Python imaging library. In versions 11.2.0 to before 11.3.0, there is a heap buffer over
Pillow is a Python imaging library. In versions 11.2.0 to before 11.3.0, there is a heap buffer overflow when writing a sufficiently large (>64k encoded with default settings) image in the DDS format due to writing into a buffer without checking for available space. This only affects users who save untrusted data as a compressed DDS image. This issu
nvd
CVE-2026-55798P4MEDIUMCVSS 4.5fixed in 12.3.02026-07-06
CVE-2026-55798 [MEDIUM] CWE-78 CVE-2026-55798: Pillow is a Python imaging library. Prior to 12.3.0, WindowsViewer.get_command() constructed a cmd.e
Pillow is a Python imaging library. Prior to 12.3.0, WindowsViewer.get_command() constructed a cmd.exe shell command by directly embedding a file path into an f-string without escaping and passed the result to subprocess.Popen(..., shell=True), allowing shell metacharacters in the file path to inject arbitrary cmd.exe commands. This issue is fixed in
nvd
CVE-2026-42309P4MEDIUMCVSS 5.5v>= 11.2.1, < 12.2.02026-05-09
CVE-2026-42309 [MEDIUM] CWE-122 CVE-2026-42309: Pillow is a Python imaging library. From version 11.2.1 to before version 12.2.0, passing nested lis
Pillow is a Python imaging library. From version 11.2.1 to before version 12.2.0, passing nested lists as coordinates to APIs that accept coordinates such as ImagePath.Path, ImageDraw.ImageDraw.polygon and ImageDraw.ImageDraw.line could cause a heap buffer overflow, as nested lists were recursively unpacked beyond the allocated buffer. Coordinate li
nvd
CVE-2026-42310P4MEDIUMCVSS 5.5v>= 4.2.0, < 12.2.02026-05-09
CVE-2026-42310 [MEDIUM] CWE-835 CVE-2026-42310: Pillow is a Python imaging library. From version 4.2.0 to before version 12.2.0, an attacker can sup
Pillow is a Python imaging library. From version 4.2.0 to before version 12.2.0, an attacker can supply a malicious PDF that causes the process to hang indefinitely, consuming 100% CPU and making the application unresponsive. This issue has been patched in version 12.2.0.
nvd
CVE-2026-42308P4MEDIUMCVSS 5.5fixed in 12.2.02026-05-09
CVE-2026-42308 [MEDIUM] CWE-190 CVE-2026-42308: Pillow is a Python imaging library. Prior to version 12.2.0, if a font advances for each glyph by an
Pillow is a Python imaging library. Prior to version 12.2.0, if a font advances for each glyph by an exceeding large amount, when Pillow keeps track of the current position, it may lead to an integer overflow. This issue has been patched in version 12.2.0.
nvd
← Previous3 / 3