PatchSiren cyber security CVE debrief
CVE-2026-96638 python-pillow CVE debrief
A memory-amplification denial-of-service vulnerability exists in Pillow's BMP RLE decoder. An attacker can craft a BMP file to cause the decoder to allocate gigabytes of memory, leading to a denial-of-service condition. This vulnerability is caused by the decoder's inability to properly handle certain types of BMP files, leading to unbounded memory growth. The vulnerability can be triggered by a tiny RLE stream combined with a large-but-legal xsize, resulting in a multi-GB `data` bytearray. Defenders should prioritize patching or mitigating this vulnerability, especially in environments where Pillow is used to process untrusted images.
- Vendor
- python-pillow
- Product
- pillow
- CVSS
- MEDIUM 6.5
- CISA KEV
- Not listed in stored evidence
- Original CVE published
- 2026-10-22
- Original CVE updated
- 2026-10-22
- Advisory published
- 2026-10-22
- Advisory updated
- 2026-10-22
Who should care
Defenders responsible for systems using Pillow, especially those processing untrusted images, should assess exposure and prioritize patching or mitigating this vulnerability. This includes operators of platforms where Pillow is used to process images, vulnerability management teams, and security teams responsible for monitoring and incident response. Additionally, defenders should review and update incident response plans to address potential denial-of-s
Why it matters
A memory-amplification denial-of-service vulnerability exists in Pillow's BMP RLE decoder. Defenders should prioritize patching or mitigating this vulnerability, especially in environments where Pillow is used to process untrusted images.
- Denial-of-service condition due to excessive memory allocation
- Potential for exploitation via crafted BMP files
- Need for patching or mitigating the vulnerability to prevent exploitation
Technical summary
The BmpRleDecoder in Pillow is vulnerable to a memory-amplification denial-of-service attack. An attacker can craft a BMP file to cause the decoder to allocate gigabytes of memory, leading to a denial-of-service condition. This is due to the decoder's inability to properly handle certain types of BMP files, leading to unbounded memory growth. The decoder's loop condition is only checked at the top, and individual branches can append attacker-controlled amounts of data, leading to a severe memory-amplification DoS. The vulnerability can be triggered by a tiny RLE stream combined with a large-but-legal xsize, resulting in a multi-GB `data` bytearray.
Defensive priority
Defenders should prioritize patching or mitigating this vulnerability, especially in environments where Pillow is used to process untrusted images.
Recommended defensive actions
- Patch Pillow to version 13.0.0 or later
- Restrict access to Pillow's BMP RLE decoder to trusted users
- Monitor Pillow's usage and detect potential denial-of-service attempts
- Implement additional security measures such as input validation and monitoring
- Conduct regular security audits and vulnerability assessments
- Review and update incident response plans to address potential denial-of-service attacks
- Track and analyze potential exploitation attempts
Evidence notes
The vulnerability is caused by the BmpRleDecoder's inability to properly handle certain types of BMP files, leading to unbounded memory growth. The decoder's loop condition is only checked at the top, and individual branches can append attacker-controlled amounts of data, leading to a severe memory-amplification DoS.
Sources and references
Verified primary and authoritative sources
-
CVE-2026-96638 CVE Program record
Publisher, destination, and source semantics verified
URL: https://www.cve.org/CVERecord?id=CVE-2026-96638
CVE Program - Official CVE Program record with source-provided CVE metadata.
-
CVE-2026-96638 NVD vulnerability detail
Publisher, destination, and source semantics verified
URL: https://nvd.nist.gov/vuln/detail/CVE-2026-96638
NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.
Supplemental references
-
Pillow: BMP RLE decoder memory-amplification DoS via unbounded delta escape / absolute mode
Unverified legacy reference
URL: https://storage.googleapis.com/osv-vulnerabilities/PyPI/GHSA-24rc-8hj2-v98c.json
osv_dev
-
Source reference
Unverified legacy reference
URL: https://github.com/python-pillow/Pillow/security/advisories/GHSA-24rc-8hj2-v98c
Supplemental source
-
Source reference
Unverified legacy reference
URL: https://github.com/python-pillow/Pillow/pull/10015
Supplemental source
-
Source reference
Unverified legacy reference
URL: https://github.com/python-pillow/Pillow/commit/e7794835e323ff2691d9b3a974cade1a44301b9a
Supplemental source
-
Source reference
Unverified legacy reference
URL: https://github.com/python-pillow/Pillow
Supplemental source
-
Source reference
Unverified legacy reference
URL: https://github.com/python-pillow/Pillow/releases/tag/13.0.0
Supplemental source
Methodology and review provenance
AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.