Skip to main content

Pillow EUVDEUVD-2026-107562

| CVE-2026-96641 MEDIUM
Integer Overflow or Wraparound (CWE-190)
6.5
CVSS 3.1 · Vendor
View

Attack ChainAIDerived

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

  1. Access
    Supply crafted PILfont file
  2. Exploit
    Application loads font and measures text
  3. Execution
    Integer underflow in width calculation
  4. Impact
    Crash or out-of-bounds read (DoS)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer overflow checks
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the application to load and use a legacy PILfont (.pil bitmap font) whose glyph/metric data has been manipulated to trigger the underflow during text-width calculation; it is not reachable through ordinary image decoding. Limiting factors: PILfonts are a legacy, rarely attacker-supplied input (most applications ship trusted fonts), so the attack surface is narrow and typically local file-based rather than remote; the application must specifically load the malicious font and perform text measurement/rendering with it. There is no indication of required authentication from any CVSS vector (none provided), so authentication requirements are not confirmed from available data.

Impact

CVE-2026-96641 is one entry (rated Medium by the Pillow project) in the large batch of vulnerabilities fixed in Pillow 13.0.0 - specifically an integer underflow in the PILfont text-width calculation path (GHSA-4rm8-3hmm-39fg). No CVSS vector, CWE, EPSS score, KEV listing, or POC indicator was provided in the input, so several standard prioritization signals are simply absent and cannot be presented as known. Based on the description alone, this is a memory-safety/computation flaw in legacy bitmap-font (.pil) handling, and the realistic worst case is a denial of service or out-of-bounds read when a crafted or malformed PILfont is loaded and used to measure text - not a high-value remote code execution primitive. The signals that exist point to LOW real-world urgency: the vendor itself classified it Medium, the attack requires the application to process an attacker-influenced PILfont (an uncommon untrusted input compared to ordinary image files), and there is no evidence of exploitation or public exploit code. EPSS is unavailable, so exploitation probability cannot be quantified; KEV status is not listed, consistent with no observed active exploitation. Net: despite Pillow's enormous deployment footprint, this specific issue is a patch-in-routine-cycle item rather than an emergency, and it should not be elevated to a high priority absent additional evidence (e.g., a confirmed OOB read leading to information disclosure).

Exploit ScenarioDerived

An application using Pillow loads an attacker-supplied legacy PILfont (.pil) file and calls a text-measurement routine (e.g., computing text width for layout); the integer underflow corrupts the width computation, causing a crash or an out-of-bounds read and resulting in denial of service for the processing service. No public exploit code was identified in the provided data, and exploitation depends on the application accepting or rendering with untrusted PILfont data rather than ordinary trusted bundled fonts.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 21, 2026

Integer underflow in Pillow's legacy PILfont text-width calculation (CVE-2026-96641, GHSA-4rm8-3hmm-39fg) can be triggered when an application loads and measures text with a manipulated .pil bitmap font, producing a low-impact availability condition; the Pillow project rates it Medium and fixed it in release 13.0.0. The assessed CVSS 3.1 vector is AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L, indicating a local attack vector, no privileges required, no user interaction, and impact limited to availability with no confidentiality or integrity effect. No public exploit was identified at time of analysis, and no CISA KEV entry is indicated in the available data.

RemediationAI

Upgrade to Pillow 13.0.0, which contains the vendor-released fix for CVE-2026-96641. If immediate upgrade is not possible, avoid loading PILfont (.pil) files from untrusted sources and restrict applications to trusted, bundled bitmap fonts; specifically, prevent attacker-controlled .pil fonts from reaching Pillow's text measurement/rendering paths. This may break workflows that depend on legacy bitmap fonts, so validate font provenance and convert untrusted bitmap fonts to supported formats before use. Refer to the Pillow 13.0.0 release notes at https://pillow.readthedocs.io/en/stable/releasenotes/13.0.0.html and the oss-security advisory at https://seclists.org/oss-sec/2026/q4/295 for the full set of fixes in that release.

Affected VersionsENISA

Pillow < 13.0.0

Affected Packages

pypi pillow fix: 13.0.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 is the maintained fork of the Python Imaging Library and provides image-processing primitives as well as legacy font support. PILfont is an older bitmap-font format (.pil) whose glyph and metric data are parsed when text is measured or rendered. CVE-2026-96641 is an integer underflow in that text-width calculation path: manipulated font data can drive the width computation below the intended numeric range, resulting in an availability impact as assessed (CVSS 3.1 AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L). This is not reachable through ordinary image decoding; exploitation requires the application to load a crafted PILfont and perform text width measurement or rendering with it. No CWE was provided in the input, but the root-cause class is an integer underflow in legacy font metric handling. The affected code is part of Pillow's font/text path rather than its common image decoder surface.

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 (CNA) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
vuln.today AI 4.0 MEDIUM

Triggered by processing a crafted local PILfont file (AV:L), no privileges needed (PR:N), and the realistic impact is a crash/DoS (A:L) with no confirmed confidentiality or integrity effect.

3.1 AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
4.0 AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (CNA).

CVSS VectorVendor

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

Lifecycle Timeline

3
Patch available
Oct 21, 2026 - 22:03 EUVD
CVSS changed
Oct 21, 2026 - 21:23 NVD
6.5 (MEDIUM)
CVE Published
Oct 21, 2026 - 19:14 oss-security
HIGH

Description PRE-NVD

Disclosed via oss-security. NVD scoring and full description are pending.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 93,931 pypi packages depend on pillow (20,820 direct, 74,698 indirect)

Ecosystem-wide dependent count for version 13.0.0.

Executive ViewAI

Why It Matters

A high-severity integer underflow in Pillow, the Python imaging library embedded in many internal and customer-facing image-processing services, can degrade or crash text-rendering workloads when an application loads and measures a tampered legacy .pil bitmap font. Impact is confined to availability, with no confidentiality or integrity exposure, and exploitation requires local access plus the introduction of a malicious font into the processing pipeline. Leadership should care chiefly because Pillow is a pervasive transitive dependency, so unmanaged deployments may persist well after the upstream fix; the practical business risk remains limited.

Business Impact: Low
Compensating Controls

Apply vendor patch: upgrade to Pillow 13.0.0. Until then, disable legacy .pil bitmap font parsing, reject untrusted .pil uploads at ingestion, validate font files against an allowlist, and restrict local access to font-processing workflows.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
High
Pillow is among the most widely deployed Python imaging libraries
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Low

Priority Score

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

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.

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-59205 HIGH POC
7.5 Jul 14

Denial-of-service and controlled heap corruption in Python's Pillow imaging library (all versions prior to 12.3.0) occur

CVE-2026-59203 HIGH POC
7.5 Jul 14

Denial of service in Python Pillow 12.0.0 through 12.2.0 lets a remote attacker hang an application by supplying a craft

CVE-2026-59199 HIGH POC
7.5 Jul 14

Denial of service (and potential memory corruption) in Python Pillow before 12.3.0 arises when public image coordinate A

CVE-2026-55379 HIGH POC
7.5 Jul 06

Uncontrolled memory allocation in Python Pillow before 12.3.0 lets a crafted BDF font file exhaust available memory and

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-2026-55380 HIGH POC
7.5 Jul 06

Denial-of-service via memory exhaustion in Python Pillow before 12.3.0 allows a crafted GD-format (.gd) image to trigger

CVE-2026-54060 HIGH POC
7.5 Jul 06

Uncontrolled memory allocation in Python Pillow before 12.3.0 allows a maliciously crafted font file to trigger excessiv

CVE-2026-54059 HIGH POC
7.5 Jul 06

Uncontrolled memory allocation in the Python Pillow imaging library (all versions prior to 12.3.0) allows a crafted PCF

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