Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify service that loads untrusted PCF fonts
-
DeliverySubmit crafted PCF with oversized METRICS dimensions
-
ExploitPillow reads glyph size, skips bomb check
-
ExecutionImage.frombytes() requests huge allocation
-
ImpactMemory exhausted, worker/host crashes (DoS)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory allocation limits
|
| Exploitation Conditions | Exploitation requires the target application to load an attacker-controlled PCF (X11 Portable Compiled Format) bitmap font through Pillow's PcfFontFile loader - for example via ImageFont/PcfFontFile on an uploaded or fetched .pcf file. The concrete prerequisite is that untrusted PCF font data reaches _load_bitmaps(); applications that never parse external PCF fonts are not exposed. Limiting factors: only the PCF code path is affected (not JPEG/PNG/other formats), the impact is confined to memory-exhaustion denial of service with no code execution or data disclosure, and reachability depends on the application deliberately accepting third-party fonts. No authentication is required at the CVSS level (PR:N), but the practical attack surface is narrowed to font-processing features. |
| 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) rates this High, driven entirely by the availability impact - confidentiality and integrity are explicitly N, so despite the 'Information Disclosure' tag this is a denial-of-service issue, a conflict worth flagging. The AV:N/PR:N/UI:N metrics assume the crafted PCF font can reach the parser without authentication or user interaction, which is only true for applications that accept and load untrusted PCF font files; in practice PCF font loading is an uncommon, application-specific path, which tempers real-world exposure. No EPSS score, SSVC decision, KEV listing, or POC was provided, so there is no evidence of active or automatable exploitation - this reads as a genuine but bounded DoS bug that merits routine patching rather than emergency response, unless the deployment specifically ingests attacker-supplied fonts. |
| Exploit ScenarioDerived | An attacker uploads a maliciously crafted PCF font file to a web service that uses Pillow to render text or preview fonts; when the service calls PcfFontFile to load the glyphs, the inflated METRICS dimensions trigger a massive Image.frombytes() allocation that exhausts memory and crashes the worker or host. Because the flaw is network-reachable (AV:N) with low complexity and no authentication or user interaction required in such a pipeline, repeated submissions can produce sustained denial of service. No public POC has been identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 06, 2026
Uncontrolled memory allocation in the Python Pillow imaging library (all versions prior to 12.3.0) allows a crafted PCF bitmap font to exhaust process memory and crash the host application. The PcfFontFile bitmap loader trusts attacker-supplied glyph dimensions from the font's METRICS section and hands them straight to Image.frombytes() while skipping Pillow's decompression-bomb guard. There is no public exploit identified at time of analysis and it is not listed in CISA KEV; the flaw is an availability-only denial of service (CVSS 7.5), not the information disclosure implied by the source tag.
RemediationAI
Upgrade to Pillow 12.3.0 or later, which adds the missing Image._decompression_bomb_check() call to _load_bitmaps() (fix commit 0a263e6264aa5399988d9acd3bbfbca2ca3ec77d). This is a vendor-released patch: version 12.3.0. If an immediate upgrade is not possible, avoid loading untrusted or user-supplied PCF font files, or restrict font loading to a vetted allowlist of trusted fonts, since the vulnerable path is only reachable through PCF parsing; where feasible, run image/font processing in a memory-limited sandbox (e.g., cgroup/ulimit-bounded worker) so an oversized allocation kills only the worker rather than the whole service - the trade-off being added operational complexity and potential loss of throughput. Consult GHSA-8v84-f9pq-wr9x and the 12.3.0 release notes for details.
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 is the de facto Python imaging library used for decoding, manipulating and rendering images and fonts. The defect is in PIL/PcfFontFile.py, which parses X11 PCF (Portable Compiled Format) bitmap fonts. In _load_bitmaps(), glyph width/height values are read from the font's METRICS section and passed directly to Image.frombytes() without first invoking Image._decompression_bomb_check(), the safeguard Pillow normally uses to reject implausibly large image dimensions. The root cause maps to CWE-789 (Memory Allocation with Excessive Size Value): a size field controlled by untrusted input drives an unbounded allocation. Because the dimensions come from the font file rather than a validated source, a single crafted PCF file can request an allocation far larger than any legitimate glyph.
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 PCF font data can arrive over the network with no auth or interaction, but impact is memory-exhaustion DoS only, so C/I:N and A:H.
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/PcfFontFile.py _load_bitmaps() read glyph dimensions from the PCF METRICS section and passed them directly to Image.frombytes() without calling Image._decompression_bomb_check(), allowing crafted PCF font data to cause excessive memory allocation. This issue is fixed in version 12.3.0.
Blast Radius
ecosystem impact- 2,739 pypi packages depend on pillow (1,116 direct, 1,651 indirect)
Ecosystem-wide dependent count for version 12.3.0.
Articles & Coverage 1
Executive ViewAI
Python Pillow, a critical image processing library used across enterprise systems, contains a high-severity denial-of-service vulnerability in its PCF font file handler that allows crafted fonts to exhaust process memory and crash applications. No public exploit code has been identified; however, the vulnerability affects all versions prior to 12.3.0 and directly threatens service availability and business continuity.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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
Denial-of-service and controlled heap corruption in Python's Pillow imaging library (all versions prior to 12.3.0) occur
Denial of service in Python Pillow 12.0.0 through 12.2.0 lets a remote attacker hang an application by supplying a craft
Denial of service (and potential memory corruption) in Python Pillow before 12.3.0 arises when public image coordinate A
Uncontrolled memory allocation in Python Pillow before 12.3.0 lets a crafted BDF font file exhaust available memory and
Uncontrolled memory consumption in Python Pillow (PIL) versions 5.1.0 through 12.2.x allows a remote attacker to cause d
Denial-of-service via memory exhaustion in Python Pillow before 12.3.0 allows a crafted GD-format (.gd) image to trigger
Uncontrolled memory allocation in Python Pillow before 12.3.0 allows a maliciously crafted font file to trigger excessiv
Out-of-bounds heap read in Python Pillow's TGA RLE encoder (versions 5.2.0 through 12.2.x) lets adjacent process heap by
Same technique Information Disclosure
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-41899
GHSA-8v84-f9pq-wr9x
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB