CVE-2026-96778

NameCVE-2026-96778
DescriptionPillow 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.
SourceCVE (at NVD; CERT, ENISA, LWN, oss-sec, fulldisc, Debian ELTS, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more)

Vulnerable and fixed packages

The table below lists information on source packages.

Source PackageReleaseVersionStatus
pillow (PTS)bookworm, bookworm (security)9.4.0-1.1+deb12u1vulnerable
trixie11.1.0-5+deb13u4vulnerable
trixie (security)11.1.0-5+deb13u3vulnerable
forky12.3.0-1vulnerable
sid13.0.0-1fixed

The information below is based on the following data on fixed versions.

PackageTypeReleaseFixed VersionUrgencyOriginDebian Bugs
pillowsource(unstable)13.0.0-1

Notes

https://github.com/python-pillow/Pillow/security/advisories/GHSA-g7cr-3p24-7wf7
https://github.com/python-pillow/Pillow/pull/10124
Fixed by: https://github.com/python-pillow/Pillow/commit/02561b8dc6117d5670d4b469fecdd02c70854f9b (13.0.0)

Search for package or bug name: Reporting problems