Ad · Leaderboard 728×90

CVE-2026-112400

8.7High

Published 19 Oct 2026 · NVD status: Received · AI triage by gemini-3.8-flash

8.7High
Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None
Impact
High impact on availability
Weakness
CWE-400, CWE-770

Impact

Remote attackers can trigger denial of service via memory exhaustion by supplying a crafted GIF file. This occurs if the application catches DecompressionBombError and continues using the same image object.

Root cause

GifImageFile._seek retains rejected frame dimensions even after raising Image.DecompressionBombError, causing subsequent operations on the object to allocate memory based on the invalid size.

Affected systems

Pillow 9.2.0 through versions prior to 13.0.0

CVSS v4.0 · CVSS: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

Fix & remediation

Upgrade Pillow to version 13.0.0 or later. As an interim workaround, ensure application code discards the image object entirely instead of continuing processing if DecompressionBombError is raised.

shell
$ pip install --upgrade 'pillow>=13.0.0'

AI-suggested. Run it in staging first and check it against the vendor advisory. Why?

Ad · In-content banner

NVD description

Pillow is a Python imaging library. From 9.2.0 until 13.0.0, Pillow can retain a rejected GIF frame size after a decompression-bomb exception. In GifImageFile._seek, a crafted GIF can leave rejected dimensions stored after Image.DecompressionBombError; if an application catches that exception and continues processing the same image object, later seek or load operations allocate according to those dimensions and can exhaust memory, denying service. This issue is fixed in version 13.0.0.

References

Source: nvd.nist.gov/vuln/detail/CVE-2026-112400

Ad · Sticky 320×50 / 728×90