Description
Pillow is a Python imaging library. Prior to 12.3.0, PIL/BdfFontFile.py bdf_char() read the BBX width and height field from a BDF font file and passed attacker-controlled dimensions to Image.new() without calling Image._decompression_bomb_check(), bypassing Pillow's documented decompression bomb protection and allowing excessive memory allocation. This issue is fixed in version 12.3.0.
Published: 2026-07-06
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Pillow before version 12.3.0 processes BDF font files through the BdfFontFile module. During font parsing, Pillow reads the width and height fields from the font and hands those values to Image.new() without invoking the internal decompression‑bomb check. An adversary can therefore supply a font file containing astronomically large width or height values, causing Pillow to allocate an enormous amount of memory. The resulting memory exhaustion or process crash is a denial‑of‑service vulnerability. The weakness matches CWE‑770 and CWE‑789.

Affected Systems

The flaw applies to the Pillow imaging library shipped under the project name Pillow. All installations of Pillow earlier than version 12.3.0 are affected. Systems that load fonts from BDF files—such as web applications rendering PDF/HTML, desktop image editors, or backend services that import user fonts—are at risk when they rely on Pillow for font handling. The resistance thresholds fixed in 12.3.0 are not present in earlier releases.

Risk and Exploitability

The CVSS score of 7.5 implies a high severity level. The EPSS score is below 1%, indicating that, on average, current exploitation attempts are rare, and the vulnerability is not listed in CISA's KEV catalog. An attack requires the adversary to supply a malformed BDF file that Pillow will process; the likely attack vector is the delivery of such a file to an application that uses Pillow. It is inferred that no additional privileges or network access beyond the ability to provide the font file are necessary to trigger the flaw, although the exact privilege needs depend on how the font is introduced into the system. Once triggered, the attacker can force the application to allocate large amounts of memory, leading to exhaustion or a crash that results in a denial of service.

Generated by OpenCVE AI on August 1, 2026 at 18:23 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Pillow to version 12.3.0 or later.
  • Restrict or disable loading of BDF fonts from untrusted sources; configure the application to accept only trusted fonts or drop unsupported font types.
  • Apply operating‑system or container memory quotas (ulimit, cgroups) to limit the memory that the Pillow process can consume.
  • Set Pillow’s MAX_IMAGE_PIXELS configuration to a conservative value to provide an additional safeguard against oversized images.

Generated by OpenCVE AI on August 1, 2026 at 18:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-45hq-cxwh-f6vc Pillow `BdfFontFile`: `Image.new()` called without `_decompression_bomb_check()` — bomb protection bypass via font loading
History

Tue, 07 Jul 2026 12:15:00 +0000

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

None

threat_severity

Important


Mon, 06 Jul 2026 20:45:00 +0000

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

Mon, 06 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'}


Mon, 06 Jul 2026 19:15:00 +0000

Type Values Removed Values Added
Description Pillow is a Python imaging library. Prior to 12.3.0, PIL/BdfFontFile.py bdf_char() read the BBX width and height field from a BDF font file and passed attacker-controlled dimensions to Image.new() without calling Image._decompression_bomb_check(), bypassing Pillow's documented decompression bomb protection and allowing excessive memory allocation. This issue is fixed in version 12.3.0.
Title Pillow BdfFontFile`: `Image.new()` called without `_decompression_bomb_check()` — bomb protection bypass via font loading
Weaknesses CWE-789
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
Python-pillow Pillow
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-06T19:17:03.941Z

Reserved: 2026-06-16T18:57:40.181Z

Link: CVE-2026-55379

cve-icon Vulnrichment

Updated: 2026-07-06T19:16:40.963Z

cve-icon NVD

Status : Analyzed

Published: 2026-07-06T19:17:08.577

Modified: 2026-07-07T18:59:01.817

Link: CVE-2026-55379

cve-icon Redhat

Severity : Important

Publid Date: 2026-07-06T18:52:11Z

Links: CVE-2026-55379 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-01T18:30:05Z

Weaknesses
  • CWE-770

    Allocation of Resources Without Limits or Throttling

  • CWE-789

    Memory Allocation with Excessive Size Value