Pillow is a Python imaging library. Prior to 12.3.0, Pillow's public rank-filter API can trigger a native heap out-of-bounds write when given a very large odd filter size because ImageFilter.RankFilter.filter() calls image.expand(size // 2, size // 2) before rank-filter size validation and ImagingExpand() computes output dimensions with unchecked signed int arithmetic. This issue is fixed in version 12.3.0.
Fix
Patch, vendor advisory and mitigation references on NVD 4
- https://github.com/python-pillow/Pillow/commit/cce3bdb867c77a3420261ed1bfdb6b0787ec8fc1 Patch
- https://github.com/python-pillow/Pillow/pull/9695 Issue Tracking, Patch
- https://github.com/python-pillow/Pillow/security/advisories/GHSA-xj96-63gp-2gmr Exploit, Vendor Advisory
- https://github.com/python-pillow/Pillow/security/advisories/GHSA-xj96-63gp-2gmr Exploit, Vendor Advisory
Every line above is quoted from NVD, CISA, Microsoft, the vendor's own advisory or DISA; nothing is generated.
Change history 1
- First seenCVSS 8.2 · pythonNVD modified 2026-10-24 21:10
Affected (CPE criteria) 1
cpe:2.3:a:python:pillow:*:*:*:*:*:*:*:*
References 5
- https://github.com/python-pillow/Pillow/commit/cce3bdb867c77a3420261ed1bfdb6b0787ec8fc1 Patch
- https://github.com/python-pillow/Pillow/pull/9695 Issue Tracking, Patch
- https://github.com/python-pillow/Pillow/releases/tag/12.3.0 Release Notes
- https://github.com/python-pillow/Pillow/security/advisories/GHSA-xj96-63gp-2gmr Exploit, Vendor Advisory
- https://github.com/python-pillow/Pillow/security/advisories/GHSA-xj96-63gp-2gmr Exploit, Vendor Advisory