Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft BDF font with oversized BBX
-
DeliverySubmit font to Pillow-based service
-
Exploitbdf_char() reads attacker dimensions
-
ExecutionImage.new() allocates without bomb check
-
ImpactMemory 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
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.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.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- 95,104 pypi packages depend on pillow (21,228 direct, 75,509 indirect)
Ecosystem-wide dependent count for version 12.3.0.
Articles & Coverage 1
Executive ViewAI
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.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
libImaging/TgaRleDecode.c in Pillow 9.1.0 has a heap buffer overflow in the processing of invalid TGA image files. Rated
Denial of service in Python Pillow (versions 8.2.0 through 12.2.0) allows remote attackers to exhaust memory during JPEG
Out-of-bounds memory disclosure in Python Pillow before 12.3.0 lets an attacker who supplies a crafted McIdas AREA image
Heap out-of-bounds write in Python Pillow prior to 12.3.0 lets an attacker who controls the rank-filter size parameter c
Uncontrolled memory consumption in Python Pillow (PIL) versions 5.1.0 through 12.2.x allows a remote attacker to cause d
The package pillow 5.2.0 and before 8.3.2 are vulnerable to Regular Expression Denial of Service (ReDoS) via the getrgb
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
Integer overflow in the ImagingResampleHorizontal function in libImaging/Resample.c in Pillow before 3.1.1 allows remote
Python Image Library (PIL) 1.1.7 and earlier and Pillow 2.3 might allow remote attackers to execute arbitrary commands v
Pillow through 8.2.0 and PIL (aka Python Imaging Library) through 1.1.7 allow an attacker to pass controlled parameters
An issue was discovered in Pillow before 8.1.1. Rated critical severity (CVSS 9.8), this vulnerability is remotely explo
libImaging/PcxDecode.c in Pillow before 6.2.2 has a PCX P mode buffer overflow. Rated critical severity (CVSS 9.8), this
Same technique Authentication Bypass
View allVendor 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 |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP7 | Affected |
| SUSE Linux Enterprise Desktop 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Affected |
| SUSE Linux Enterprise Desktop 15 SP7 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP7 | Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| openSUSE Leap 16.0 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP4 | Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Python 3 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP5 | Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Affected |
| SUSE Manager Proxy 4.3 | Affected |
| SUSE Manager Retail Branch Server 4.3 | Affected |
| SUSE Manager Server 4.3 | Affected |
| SUSE Linux Enterprise Desktop 15 SP4 | Affected |
| SUSE Linux Enterprise Desktop 15 SP5 | Affected |
| SUSE Linux Enterprise Desktop 15 SP6 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP6 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP6 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
EUVD-2026-41902
GHSA-45hq-cxwh-f6vc
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB