Cyber Resilience

CVE-2026-59204

DoS in Python Pillow 8.2.0 – 12.3.0

Public PoCDoS
Published
14 July 2026
Modified
21 July 2026
Patch / advisory
CVSS Score v4 8.7
Click a component to see what it means
Raw vectorCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score 0.0039 33th percentile
Risk Priority 44 floored blend · peak EPSS

CVSS and EPSS are reproduced from their sources (NVD, FIRST EPSS). Risk Priority is our own derived reading, not an NVD score.

Summary

CVE-2026-59204 is a high-severity Memory Allocation with Excessive Size Value (CWE-789) vulnerability in Python Pillow. Its CVSS base score is 8.7 (High).

Operationally, exploitation aligns with the MITRE ATT&CK technique Endpoint Denial of Service (T1499); ranked at the 33th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.

The strongest mitigations our analysis identified map to AC-10 (Concurrent Session Control) and SC-6 (Resource Availability) — see the control section below for these in your framework.

EU & UK References

Vulnerability Data

Pillow is a Python imaging library. From 8.2.0 through 12.2.0, src/libImaging/Jpeg2KDecode.c accumulates total_component_width across every tile in a JPEG2000 image instead of recomputing it per tile, allowing a crafted tiled JPEG2000 file to force substantially higher transient memory usage and…

more

trigger out-of-memory failures during decoding. This issue is fixed in version 12.3.0.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1499 Endpoint Denial of Service Impact
Adversaries may perform Endpoint Denial of Service (DoS) attacks to degrade or block the availability of services to users.
T1499.003 Application Exhaustion Flood Impact
Adversaries may target resource intensive features of applications to cause a denial of service (DoS), denying availability to those applications.
T1498.001 Direct Network Flood Impact
Adversaries may attempt to cause a denial of service (DoS) by directly sending a high-volume of network traffic to a target.
T1498.002 Reflection Amplification Impact
Adversaries may attempt to cause a denial of service (DoS) by reflecting a high-volume of network traffic to a target.
T1499.001 OS Exhaustion Flood Impact
Adversaries may launch a denial of service (DoS) attack targeting an endpoint's operating system (OS).
T1499.002 Service Exhaustion Flood Impact
Adversaries may target the different network services provided by systems to conduct a denial of service (DoS).
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2026-59200Same product: Python Pillow
CVE-2026-54060Same product: Python Pillow
CVE-2026-54059Same product: Python Pillow
CVE-2026-55379Same product: Python Pillow
CVE-2026-55380Same product: Python Pillow
CVE-2026-40192Same product: Python Pillow
CVE-2026-59203Same product: Python Pillow
CVE-2026-59198Same product: Python Pillow
CVE-2026-54058Same product: Python Pillow
CVE-2026-59197Same product: Python Pillow

Affected Assets

python
pillow
8.2.0 — 12.3.0

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)

—

Detect
Catch it (NIST detect / respond)

—

Harden
Shrink the surface (DISA STIG)
  • 5 hardening rules · 3 OS baselines
Validate
Prove the fix (OWASP ASVS)
  • V15.4.4

Mitigating Controls (NIST 800-53 r5) AI

Directly enforces a hard limit on concurrent sessions, structurally preventing unbounded resource allocation.

Requires explicit allocation of resources by priority or quota, directly stopping unlimited allocation.

Input validation directly rejects or bounds untrusted size values before any allocation occurs.

Imposes a limit on consecutive invalid attempts, preventing one specific class of unbounded resource consumption.

Reduces impact of resulting DoS events without preventing the underlying lack of allocation limits.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.IR-04 partial match
prevents

Monitoring capacity and taking action to maintain availability directly reduces unchecked resource allocation.

PR.PS-06 partial match
prevents

Secure SDLC practices directly prevent coding flaws that trust unvalidated size values for allocations.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

mitigates

Defining retention periods and deletion schedules for backup copies prevents indefinite accumulation of data on storage media without corresponding resource-management controls.

mitigates

Architectural redundancy and automatic failover limit the impact of an attacker who forces excessive allocations, because spare capacity can absorb the load until the primary instance recovers.

finds

Baseline comparison of CPU, memory and bandwidth usage helps surface uncontrolled resource allocations before they cause service degradation.

prevents

Secure development lifecycle includes input validation and size checks that prevent unbounded allocations.

prevents

Application security requirements mandate bounds checking on size parameters to avoid excessive memory allocation.

prevents

Secure architecture principles require resource-limit enforcement that mitigates uncontrolled memory requests.

Hardening callouts derived

Configuration rules from DISA STIG baselines that bear on weaknesses of the type cited by this CVE. Each rule is shown with the relationship its mapping actually records, against the CWE it was authored against. Derived via CVE→CWE over `controls_xwalks` (higher-evidence rows only; rows rated `none` are excluded).

Oracle Linux 8 (2 rules)
  • V-248552 OL 8 must be configured so that all network connections associated with SSH traffic terminate after becoming unresponsive. prevents CWE-770
  • V-248553 OL 8 must be configured so that all network connections associated with SSH traffic are terminated after 10 minutes of becoming unresponsive. prevents CWE-770
Oracle Linux 9 (2 rules)
  • V-271710 OL 9 must be configured so that all network connections associated with SSH traffic are terminated after 10 minutes of becoming unresponsive. prevents CWE-770
  • V-271709 OL 9 must be configured so that all network connections associated with SSH traffic terminate after becoming unresponsive. prevents CWE-770
RHEL 8 (1 rule)
  • V-230244 RHEL 8 must be configured so that all network connections associated with SSH traffic terminate after becoming unresponsive. prevents CWE-770

References