Skip to main content

Pillow CVE-2026-55379

| EUVDEUVD-2026-41902 HIGH
Memory Allocation with Excessive Size Value (CWE-789)
2026-07-06 GitHub_M GHSA-45hq-cxwh-f6vc PYSEC-2026-2255
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft BDF font with oversized BBX
  2. Delivery
    Submit font to Pillow-based service
  3. Exploit
    bdf_char() reads attacker dimensions
  4. Execution
    Image.new() allocates without bomb check
  5. Impact
    Memory exhausted, process OOM/DoS

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory allocation limits
Exploitation Conditions

Exploitation requires the target application to parse an attacker-controlled BDF bitmap font file through Pillow's BdfFontFile / bdf_char() code path (e.g. ImageFont.load / font-rendering features that accept BDF), with the malicious file declaring oversized BBX width/height. It is limited to Pillow versions before 12.3.0 and only yields a memory-exhaustion denial of service - no confidentiality or integrity impact. The practical limiting factor is exposure: an application only reachable at AV:N/UI:N if it ingests untrusted/remote font files automatically; deployments that never load third-party BDF fonts, or that impose per-process memory limits, are effectively not exploitable.

Impact

The NVD CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, base 7.5) reflects a pure availability impact with no confidentiality or integrity loss - consistent with a memory-exhaustion DoS rather than code execution. The AV:N/UI:N rating assumes an unauthenticated remote actor can get their BDF font parsed with no user interaction, which only holds for services that accept and process uploaded/remote font files automatically; for desktop or CLI workflows the realistic vector is closer to local/user-supplied (verify against how the consuming application ingests fonts). No EPSS score, SSVC decision, or POC was supplied in the intelligence, and there is no KEV listing, so real-world exploitation pressure appears low and opportunistic. Net: a legitimate hygiene/patch item for anyone parsing untrusted BDF fonts, but not an emergency - the ceiling is a crash/OOM, not compromise. Note the input 'Authentication Bypass' tag is inaccurate; this is a decompression-bomb protection bypass, not an authentication bypass.

Exploit ScenarioDerived

An attacker submits a small, syntactically valid BDF font file whose BBX record declares enormous glyph width and height to an application that renders or inspects fonts with Pillow (for example a document/thumbnail service that accepts font uploads). When Pillow parses the glyph it calls Image.new() with the inflated dimensions and tries to allocate a multi-gigabyte buffer, driving the worker into out-of-memory and denial of service. No public POC was provided, and success requires only that the target parse the malicious font.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 06, 2026

Uncontrolled memory allocation in Python Pillow before 12.3.0 lets a crafted BDF font file exhaust available memory and crash the host application. The BdfFontFile parser trusts the attacker-supplied BBX width/height fields and hands them to Image.new() while skipping Pillow's decompression-bomb size check, so a tiny malicious font can request a huge in-memory bitmap. Impact is availability-only (denial of service); there is no public exploit identified at time of analysis and the issue is not in CISA KEV.

RemediationAI

Vendor-released patch: upgrade to Pillow 12.3.0 or later (pip install --upgrade 'Pillow>=12.3.0'), which adds the missing Image._decompression_bomb_check() call to the BDF path - see the fixing commit 0a263e6264aa5399988d9acd3bbfbca2ca3ec77d and advisory GHSA-45hq-cxwh-f6vc. If you cannot upgrade immediately, do not load untrusted or user-supplied BDF font files, and reject or filter BDF uploads at the application layer; you can also lower Image.MAX_IMAGE_PIXELS and wrap font loading in a resource-bounded context (e.g. per-request memory/timeout limits or a sandboxed worker process) so an oversized allocation fails safely rather than exhausting the host. The trade-off of blocking BDF input is loss of legacy bitmap-font support for users who legitimately need it; tightening MAX_IMAGE_PIXELS may also affect handling of legitimately large images processed by the same code.

Affected VersionsENISA

Pillow < 12.3.0

Affected Packages

pypi pillow fix: 12.3.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Pillow (PIL fork) is one of the most widely used Python imaging libraries and includes readers for many font formats, including the X11/Unix bitmap BDF format via PIL/BdfFontFile.py. The BDF 'BBX' (bounding box) record encodes a glyph's width and height; the bdf_char() routine read these fields and passed them straight to Image.new(), which allocates a raster buffer proportional to width*height. Pillow ships a documented safeguard, Image._decompression_bomb_check(), meant to reject images whose pixel count exceeds MAX_IMAGE_PIXELS, but that check was never invoked on this code path - leaving the allocation unbounded. This maps to CWE-789 (Memory Allocation with Excessive Size Value): a size value derived from untrusted input drives an unconstrained allocation. The single affected package is identified by CPE cpe:2.3:a:python-pillow:pillow:*:*:*:*:*:*:*:*.

Know when Pillow gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

Untrusted font parsing by a network service needs no auth or interaction (AV:N/PR:N/UI:N) and yields only memory-exhaustion DoS, so C:N/I:N/A:H; UI could be R for desktop use.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE HIGH
Red Hat 7.5 HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

1
Patch available
Jul 06, 2026 - 20:02 EUVD

DescriptionCVE.org

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.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 95,104 pypi packages depend on pillow (21,228 direct, 75,509 indirect)

Ecosystem-wide dependent count for version 12.3.0.

Executive ViewAI

Why It Matters

Pillow, a foundational Python image processing library used across development and production environments, contains a denial-of-service vulnerability triggered by specially crafted BDF font files that exhaust system memory and crash applications. Organizations relying on Pillow for image or font processing face service unavailability if exposed to malicious font files; the risk extends to any service accepting user-supplied images. Upgrading to Pillow 12.3.0 or later is required to eliminate the vulnerability.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 71% exploitable
Prevalence
High
Pillow is among the most widely deployed Python imaging libraries
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

58
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

More in Pillow

View all
CVE-2022-30595 CRITICAL POC
9.8 May 25

libImaging/TgaRleDecode.c in Pillow 9.1.0 has a heap buffer overflow in the processing of invalid TGA image files. Rated

CVE-2026-59204 HIGH POC
8.7 Jul 14

Denial of service in Python Pillow (versions 8.2.0 through 12.2.0) allows remote attackers to exhaust memory during JPEG

CVE-2026-54058 HIGH POC
8.3 Jul 14

Out-of-bounds memory disclosure in Python Pillow before 12.3.0 lets an attacker who supplies a crafted McIdas AREA image

CVE-2026-59197 HIGH POC
8.2 Jul 14

Heap out-of-bounds write in Python Pillow prior to 12.3.0 lets an attacker who controls the rank-filter size parameter c

CVE-2026-59200 HIGH POC
7.5 Jul 14

Uncontrolled memory consumption in Python Pillow (PIL) versions 5.1.0 through 12.2.x allows a remote attacker to cause d

CVE-2021-23437 HIGH POC
7.5 Sep 03

The package pillow 5.2.0 and before 8.3.2 are vulnerable to Regular Expression Denial of Service (ReDoS) via the getrgb

CVE-2025-48379 HIGH POC
7.1 Jul 01

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

CVE-2016-4009 CRITICAL
9.8 Apr 13

Integer overflow in the ImagingResampleHorizontal function in libImaging/Resample.c in Pillow before 3.1.1 allows remote

CVE-2014-3007 CRITICAL
10.0 Apr 27

Python Image Library (PIL) 1.1.7 and earlier and Pillow 2.3 might allow remote attackers to execute arbitrary commands v

CVE-2021-34552 CRITICAL
9.8 Jul 13

Pillow through 8.2.0 and PIL (aka Python Imaging Library) through 1.1.7 allow an attacker to pass controlled parameters

CVE-2021-25289 CRITICAL
9.8 Mar 19

An issue was discovered in Pillow before 8.1.1. Rated critical severity (CVSS 9.8), this vulnerability is remotely explo

CVE-2020-5312 CRITICAL
9.8 Jan 03

libImaging/PcxDecode.c in Pillow before 6.2.2 has a PCX P mode buffer overflow. Rated critical severity (CVSS 9.8), this

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Liberty Linux 8 Fixed
SUSE Linux Enterprise Module for Package Hub 15 SP7 Fixed
SUSE Linux Enterprise Server 16.0 SUSE Linux Enterprise Server for SAP applications 16.0 Fixed
openSUSE Leap 16.0 Fixed
openSUSE Tumbleweed Fixed

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy