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 trigger out-of-memory failures during decoding. 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/13ada41172142f2fd9f0906f615a00ea623a11ca Patch
- https://github.com/python-pillow/Pillow/pull/9704 Exploit, Issue Tracking, Patch
- https://github.com/python-pillow/Pillow/security/advisories/GHSA-vjc4-5qp5-m44j Exploit, Vendor Advisory
- https://github.com/python-pillow/Pillow/security/advisories/GHSA-vjc4-5qp5-m44j 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.7 · 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/13ada41172142f2fd9f0906f615a00ea623a11ca Patch
- https://github.com/python-pillow/Pillow/pull/9704 Exploit, 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-vjc4-5qp5-m44j Exploit, Vendor Advisory
- https://github.com/python-pillow/Pillow/security/advisories/GHSA-vjc4-5qp5-m44j Exploit, Vendor Advisory