CVE-2026-59200

Pillow: Decompression Bomb DoS via PdfParser.PdfStream.decode()

Published Jul 14, 2026 CVSS 3.1 · 7.5 High EPSS < 1% KEV · Not listed
Description
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.

Analysis

AI-generated

Technical impact

The vulnerability lies in Pillow’s PDF stream decoder, where the zlib decompression function is called with a buffer size directly derived from the PDF Length field. Because this size is not bounded, a crafted PDF using the FlateDecode filter can cause the library to allocate a large amount of memory from a deceptively small input file. The result is a memory exhaustion attack that leads to a denial of service in processes that load the compromised PDF. The weakness is reflected by CWE‑770.

Affected Systems

The issue affects Pillow images library versions 5.1.0 through 12.3.0, exclusive, that depend on Pillow and process untrusted PDF files. Vulnerable environments include web servers, document converters, or automated image processing pipelines that rely on the PdfParser module. The fix is included in Pillow 12.3.0.

Risk and Exploitability

The CVSS score of 7.5 indicates a high severity, and the EPSS score of less than 1% suggests a low likelihood of exploitation in the wild at this time. The vulnerability is not listed in the CISA KEV catalog. An attacker would likely need to supply a PDF file to a target that unconditionally parses PDF content, so the attack vector is inferred as local or file ingestion; all that is required is that the target application accepts and decodes a malicious PDF.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Pillow to version 12.3.0 or later
  • If upgrading is not immediately feasible bound on the size of PDFs processed or validate the decompressed output size before accepting it
  • Disable or sandbox PDF processing in environments that do not require it, or apply system resource limits to restrict memory consumption of processes using Pillow

Generated by OpenCVE AI on July 31, 2026 at 09:57 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-jjj6-mw9f-p565 Pillow: Decompression Bomb DoS via PdfParser.PdfStream.decode()
Ubuntu USN Ubuntu USN USN-8999-1 Pillow vulnerabilities
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Python-pillow
Python-pillow pillow
Vendors & Products Python-pillow
Python-pillow pillow
Type Values Removed Values Added
Description 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.
Title Pillow: Decompression Bomb DoS via PdfParser.PdfStream.decode()
Weaknesses CWE-400
CWE-770
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-409

    Improper Handling of Highly Compressed Data (Data Amplification)

  • CWE-770

    Allocation of Resources Without Limits or Throttling

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Jul 14, 2026, 7:52 PM
Reserved
Jul 2, 2026, 7:53 PM
Status
Analyzed
Published
Jul 14, 2026, 5:17 PM
Modified
Oct 24, 2026, 9:10 PM
Severity
Important
Public date
Jul 14, 2026, 4:09 PM