pillow has 42 CVEs on record between 2024 and 2026. Disclosure cadence is accelerating: 35 in the last 90 days against 5 in the 90 before. The busiest recent month was October 2026 with 35. The median CVSS is 7.5 (high), with 5 rated critical. None have a confirmed exploitation report. The dominant weakness classes are CWE-770 (6) and CWE-122 (5).
CVEs per month
Last 12 months, by publish date
- Exploited share
- 0% vs 1% corpus
- Median CVSS
- 7.5
- Publish → KEV
- —
- Last 90 days
- 35 prev 5
Worst active — by depth score
CVE-2026-112398Critical· 9.2Pillow: Heap buffer overflow in FlashPix (FPX) JPEG decoding leads to code execution63CVE-2026-112900Critical· 9.2Pillow: Argument Injection in Ghostscript call, potentially leading into RCE63CVE-2026-112393Critical· 9.2Pillow: Heap buffer overflow in _tiffWriteProc when saving TIFF to BytesIO63CVE-2026-112403Critical· 9.2Pillow: Heap buffer overflow in ImagingJpegDecode63CVE-2026-112394Medium· 8.2Pillow: P;2L and P;4L decoders may read 1 to 3 bytes past the passed buffer size57
pillow vulnerabilities
CVEs affecting pillow, newest first. Open any entry for full detail, references, and exploit status.
42 CVEsRSS
CVE-2026-114501Medium· 6.3Pillow: Arrow export leaks stale heap memory when PILLOW_ALIGNMENT > 1
Pillow: Arrow export leaks stale heap memory when PILLOW_ALIGNMENT > 1
CVE-2026-112398Critical· 9.2PoCPillow: Heap buffer overflow in FlashPix (FPX) JPEG decoding leads to code execution
Pillow: Heap buffer overflow in FlashPix (FPX) JPEG decoding leads to code execution
GHSA-78g4-xqwv-q3g8High· 8.1Pillow: Bundled libopenjp2 2.5.4 in all wheels since 11.1.0 carries OSV-2025-219 heap-buffer-overflow write reachable from Image.open().l…
Pillow: Bundled libopenjp2 2.5.4 in all wheels since 11.1.0 carries OSV-2025-219 heap-buffer-overflow write reachable from Image.open().load()
CVE-2026-96636Medium· 6.5Pillow: Decompression-bomb protection bypass via multi-frame seek() in MPO and DCX (MpoImageFile.seek / DcxImageFile.seek)
Pillow: Decompression-bomb protection bypass via multi-frame seek() in MPO and DCX (MpoImageFile.seek / DcxImageFile.seek)
CVE-2026-96639Critical· 9.8Pillow multi-frame loaders can reuse stale native image storage after mode transitions
Pillow multi-frame loaders can reuse stale native image storage after mode transitions
CVE-2026-96642High· 7.1Pillow: TarIO negative size field causes infinite CPU-spin loop
Pillow: TarIO negative size field causes infinite CPU-spin loop
CVE-2026-96638Medium· 6.5Pillow: BMP RLE decoder memory-amplification DoS via unbounded delta escape / absolute mode
Pillow: BMP RLE decoder memory-amplification DoS via unbounded delta escape / absolute mode
CVE-2026-96641Medium· 6.5Pillow: Reachable undefined behavior in native integer operations, potentially leading to denial of service or logic integrity compromise
Pillow: Reachable undefined behavior in native integer operations, potentially leading to denial of service or logic integrity compromise
CVE-2026-112902HighPillow: Memory disclosure and segfault in libtiff encoder via crafted TIFF tags
Pillow: Memory disclosure and segfault in libtiff encoder via crafted TIFF tags
CVE-2026-112900Critical· 9.2PoCPillow: Argument Injection in Ghostscript call, potentially leading into RCE
Pillow: Argument Injection in Ghostscript call, potentially leading into RCE
CVE-2026-112893High· 7.5Pillow: Invalid free in FreeType glyph rendering when a stroker is active
Pillow: Invalid free in FreeType glyph rendering when a stroker is active
CVE-2026-112894High· 7.5PoCPillow: Quadratic-time DoS in PDF save_all (PdfParser.next_object_id)
Pillow: Quadratic-time DoS in PDF save_all (PdfParser.next_object_id)
CVE-2026-112901Medium· 6.9Pillow: ReDoS in XbmImagePlugin: 512-byte file stalls Image.open() for minutes
Pillow: ReDoS in XbmImagePlugin: 512-byte file stalls Image.open() for minutes
CVE-2026-112898Medium· 6.9Pillow: Image.quantize() with empty palette leaks uninitialized stack memory
Pillow: Image.quantize() with empty palette leaks uninitialized stack memory
CVE-2026-112390High· 7.5PoCPillow: Infinite loop in MIC n_frames when the embedded TIFF
Pillow: Infinite loop in MIC n_frames when the embedded TIFF
CVE-2026-112394Medium· 8.2PoCPillow: P;2L and P;4L decoders may read 1 to 3 bytes past the passed buffer size
Pillow: P;2L and P;4L decoders may read 1 to 3 bytes past the passed buffer size
CVE-2026-112391Medium· 7.5Pillow: PdfParser can recurse without limit in get_value() and linearize_page_tree()
Pillow: PdfParser can recurse without limit in get_value() and linearize_page_tree()
CVE-2026-112396Medium· 5.9Pillow: Heap use-after-free when encoding TIFF to an in-memory buffer
Pillow: Heap use-after-free when encoding TIFF to an in-memory buffer
CVE-2026-112399High· 7.5Pillow: APNG background disposal allocates full canvas before decompression bomb check
Pillow: APNG background disposal allocates full canvas before decompression bomb check
CVE-2026-112401Medium· 6.9Pillow: Quadratic GIF comment concatenation allows DoS in Image.open()
Pillow: Quadratic GIF comment concatenation allows DoS in Image.open()
CVE-2026-112393Critical· 9.2PoCPillow: Heap buffer overflow in _tiffWriteProc when saving TIFF to BytesIO
Pillow: Heap buffer overflow in _tiffWriteProc when saving TIFF to BytesIO
CVE-2026-112392High· 7.5PoCPillow: NULL dereference in ImagingExpand via rank filters on zero-size images
Pillow: NULL dereference in ImagingExpand via rank filters on zero-size images
CVE-2026-112405High· 7.5PoCPillow: NULL pointer dereference in Image.merge via an unvalidated band 0
Pillow: NULL pointer dereference in Image.merge via an unvalidated band 0
CVE-2026-112406High· 7.5Pillow: Infinite loop in PdfParser.rewrite_pages on page tree Parent cycle
Pillow: Infinite loop in PdfParser.rewrite_pages on page tree Parent cycle
CVE-2026-112891Medium· 6.9Pillow: Quadratic GIF comment copying during save
Pillow: Quadratic GIF comment copying during save
CVE-2026-112402High· 7.5PoCPillow: Double free in ImagingScaleAffine on calloc failure via Image.transform
Pillow: Double free in ImagingScaleAffine on calloc failure via Image.transform
CVE-2026-112899MediumPillow: EPS load(scale) lets Ghostscript render past the decompression bomb limit
Pillow: EPS load(scale) lets Ghostscript render past the decompression bomb limit
CVE-2026-112895High· 7.5Pillow: Unbounded recursion parsing a PDF page tree or trailer chain (incomplete fix for CVE-2026-42310)
Pillow: Unbounded recursion parsing a PDF page tree or trailer chain (incomplete fix for CVE-2026-42310)
CVE-2026-112897High· 7.5PoCPillow: TiffDecode returns uninitialized memory as pixels for short JPEG strips
Pillow: TiffDecode returns uninitialized memory as pixels for short JPEG strips
CVE-2026-112896High· 8.2PoCPillow: TIFF encoder ColorMap plane-size mismatch causes a heap out-of-bounds read
Pillow: TIFF encoder ColorMap plane-size mismatch causes a heap out-of-bounds read