Description
Pillow is a Python imaging library. From 9.1.0 until 13.0.0, BmpRleDecoder.decode() in src/PIL/BmpImagePlugin.py permits crafted RLE BMP delta escapes and absolute-mode runs to append beyond the remaining dest_length without a per-branch cap. A delta can add roughly 255 image rows in one iteration, so a kilobyte-sized file with a large but permitted width can expand the data bytearray to hundreds of megabytes or more, causing memory-exhaustion denial of service. This issue is fixed in version 13.0.0.
Published: 2026-10-21
Score: 6.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Memory exhaustion denial of service
Action: Patch
AI Analysis

Impact

Pillow, a popular Python imaging library, contains a flaw in its BMP RLE decoder where unbounded delta escapes and absolute-mode runs allow a crafted RLE BMP file to write far beyond the intended buffer. The decoder can append approximately 255 image rows per iteration, so a small file can inflate the destination bytearray to hundreds of megabytes or more. This uncontrolled allocation leads to a memory‑exhaustion denial of service.

Affected Systems

Python implementations that import Pillow, specifically versions 9.1.0 through the last release prior to 13.0.0, are affected. The vulnerability was fixed in release 13.0.0; versions 13.0.0 and later are not affected.

Risk and Exploitability

The CVSS score of 6.5 indicates moderate severity. The EPSS score is less than 1% and the vulnerability is not listed in CISA KEV. Based on the description, it is inferred that an attacker would need to supply a malicious BMP file that an application using Pillow processes, potentially from a remote upload or local file. The out‑of‑bounds writes can cause memory exhaustion and crash the application, leading to denial of service.

Generated by OpenCVE AI on October 22, 2026 at 15:43 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Pillow to version 13.0.0 or later.
  • Validate Input: Reject BMP files containing large data runs or delimiters that could trigger the unbounded delta logic before invoking the decoder.
  • If an upgrade cannot be applied, disable BMP support in Pillow or replace it with a more restrictive image processing library, and monitor memory usage of image‑handling processes.

Generated by OpenCVE AI on October 22, 2026 at 15:43 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-24rc-8hj2-v98c Pillow: BMP RLE decoder memory-amplification DoS via unbounded delta escape / absolute mode
History

Thu, 29 Oct 2026 09:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 27 Oct 2026 14:45:00 +0000

Type Values Removed Values Added
First Time appeared Python
Python pillow
CPEs cpe:2.3:a:python:pillow:*:*:*:*:*:*:*:*
Vendors & Products Python
Python pillow

Thu, 22 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-409
References
Metrics threat_severity

None

threat_severity

Moderate


Thu, 22 Oct 2026 04:45:00 +0000

Type Values Removed Values Added
First Time appeared Python-pillow
Python-pillow pillow
Vendors & Products Python-pillow
Python-pillow pillow

Wed, 21 Oct 2026 21:00:00 +0000

Type Values Removed Values Added
Description Pillow is a Python imaging library. From 9.1.0 until 13.0.0, BmpRleDecoder.decode() in src/PIL/BmpImagePlugin.py permits crafted RLE BMP delta escapes and absolute-mode runs to append beyond the remaining dest_length without a per-branch cap. A delta can add roughly 255 image rows in one iteration, so a kilobyte-sized file with a large but permitted width can expand the data bytearray to hundreds of megabytes or more, causing memory-exhaustion denial of service. This issue is fixed in version 13.0.0.
Title Pillow: BMP RLE decoder memory-amplification DoS via unbounded delta escape / absolute mode
Weaknesses CWE-400
CWE-770
References
Metrics cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H'}


Subscriptions

Python Pillow
Python-pillow Pillow
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-28T18:21:53.700Z

Reserved: 2026-09-23T14:35:50.130Z

Link: CVE-2026-96638

cve-icon Vulnrichment

Updated: 2026-10-28T18:21:45.616Z

cve-icon NVD

Status : Analyzed

Published: 2026-10-21T21:20:32.067

Modified: 2026-10-28T19:19:28.497

Link: CVE-2026-96638

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-21T20:47:21Z

Links: CVE-2026-96638 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-22T15:45:08Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-409

    Improper Handling of Highly Compressed Data (Data Amplification)

  • CWE-770

    Allocation of Resources Without Limits or Throttling