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.
Published: 2026-07-14
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

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.

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

Remediation

No vendor fix or workaround currently provided.

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()
History

Thu, 16 Jul 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-409
References
Metrics threat_severity

None

threat_severity

Important


Tue, 14 Jul 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Tue, 14 Jul 2026 17:45:00 +0000

Type Values Removed Values Added
First Time appeared Python-pillow
Python-pillow pillow
Vendors & Products Python-pillow
Python-pillow pillow

Tue, 14 Jul 2026 16:45:00 +0000

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'}


Subscriptions

Python-pillow Pillow
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-14T19:52:06.407Z

Reserved: 2026-07-02T19:53:48.831Z

Link: CVE-2026-59200

cve-icon Vulnrichment

Updated: 2026-07-14T19:43:56.053Z

cve-icon NVD

No data.

cve-icon Redhat

Severity : Important

Publid Date: 2026-07-14T16:09:05Z

Links: CVE-2026-59200 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-07-31T10:00:05Z

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