Vulnerability Description
Pillow is a Python imaging library. From 9.4.0 until 13.0.0, ImagingJpegEncode() in src/libImaging/JpegEncode.c can call jpeg_write_marker() for a JPEG COM comment when an ICC profile has exactly filled the 65536-byte encoder buffer. libjpeg writes one byte before checking the exhausted free_in_buffer counter, which then wraps and permits the attacker-controlled comment and subsequent compressed image data to overwrite adjacent heap memory. Re-saving an untrusted image as JPEG while preserving its ICC profile and forwarded comment can crash the process and may enable code execution in suitable runtime and heap layouts. This issue is fixed in version 13.0.0.
CVSS Score
HIGH
Affected Products
| Vendor | Product | Versions |
|---|---|---|
| Python | Pillow | >= 9.4.0, < 13.0.0 |
Related Weaknesses (CWE)
References
- https://github.com/python-pillow/Pillow/commit/02561b8dc6117d5670d4b469fecdd02c7Patch
- https://github.com/python-pillow/Pillow/pull/10124Issue Tracking
- https://github.com/python-pillow/Pillow/releases/tag/13.0.0Release Notes
- https://github.com/python-pillow/Pillow/security/advisories/GHSA-g7cr-3p24-7wf7Vendor Advisory
- https://github.com/python-pillow/Pillow/security/advisories/GHSA-g7cr-3p24-7wf7Vendor Advisory
FAQ
What is CVE-2026-96778?
CVE-2026-96778 is a vulnerability with a CVSS score of 8.8 (HIGH). Pillow is a Python imaging library. From 9.4.0 until 13.0.0, ImagingJpegEncode() in src/libImaging/JpegEncode.c can call jpeg_write_marker() for a JPEG COM comment when an ICC profile has exactly fill...
How severe is CVE-2026-96778?
CVE-2026-96778 has been rated HIGH with a CVSS base score of 8.8/10. Review the CVSS metrics above for detailed severity breakdown.
Is there a patch for CVE-2026-96778?
Check the references section above for vendor advisories and patch information. Affected products include: Python Pillow.