Skip to content
OpenAdvisories
High · 7.7 Public exploit CVE-2026-96778 BIT-pillow-2026-96778EUVD-2026-107566GHSA-g7cr-3p24-7wf7

Pillow: Heap buffer overflow writing JPEG comment after ICC profile fills buffer

Published Oct 21, 2026 · Updated Oct 28, 2026 · Assigned by GitHub_M

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.

Affected products

VendorProductAffectedFixed
python-pillow Pillow >= 9.4.0, < 13.0.0 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 pillow No fix yet —
Debian 13 pillow No fix yet —
Debian 12 pillow No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 pillow 12.3.0-1ubuntu2 USN-9064-1
Ubuntu 26.04 LTS pillow 12.1.1-2ubuntu1.5 USN-9064-1
Ubuntu 24.04 LTS pillow 10.2.0-1ubuntu1.5 USN-9064-1
Ubuntu 22.04 LTS pillow 9.0.1-1ubuntu0.7 USN-9064-1
Show 4 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 20.04 LTS pillow 7.0.0-4ubuntu0.9+esm2 USN-9064-1
Ubuntu Pro 20.04 LTS pillow-python2 No fix yet —
Ubuntu Pro 18.04 LTS pillow 5.1.0-1ubuntu0.8+esm3 USN-9064-1
Ubuntu Pro 16.04 LTS pillow 3.1.2-0ubuntu1.6+esm4 USN-9064-1
Ubuntu Pro 14.04 LTS pillow 2.3.0-1ubuntu3.4+esm6 USN-9064-1
ReleasePackageFixed inAdvisory
SLES 15 SP6 python-Pillow 9.5.0-150400.5.28.1 SUSE-SU-2026:5194-1
SLES 15 SP5 python-Pillow 9.5.0-150400.5.28.1 SUSE-SU-2026:5194-1
SLES 15 SP4 python-Pillow 9.5.0-150400.5.28.1 SUSE-SU-2026:5194-1
SLES 3 python-Pillow 9.5.0-150400.5.28.1 SUSE-SU-2026:5194-1
Show 7 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 16.0 python-Pillow 11.3.0-160000.9.1 SUSE-SU-2026:24656-1
SLES for SAP 15 SP6 python-Pillow 9.5.0-150400.5.28.1 SUSE-SU-2026:5194-1
SLES for SAP 15 SP5 python-Pillow 9.5.0-150400.5.28.1 SUSE-SU-2026:5194-1
SLES for SAP 15 SP4 python-Pillow 9.5.0-150400.5.28.1 SUSE-SU-2026:5194-1
SLES 16.0 python-Pillow 11.3.0-160000.9.1 SUSE-SU-2026:24656-1
SLE HPC 15 SP5 python-Pillow 9.5.0-150400.5.28.1 SUSE-SU-2026:5194-1
SLE HPC 15 SP4 python-Pillow 9.5.0-150400.5.28.1 SUSE-SU-2026:5194-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed python-Pillow 13.0.0-2.1 openSUSE-SU-2026:12251-1
openSUSE Leap 16.0 python-Pillow 11.3.0-160000.9.1 openSUSE-SU-2026:22246-1

Amazon Linux

ReleasePackageFixed inAdvisory
Amazon Linux 2023 python3-pillow +2 9.4.0-2.amzn2023.0.12 ALAS2023-2026-3411

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling open-webui +1 No fix yet —

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Affected packages

EcosystemPackageAffectedFixedRecord
PyPI pillow >= 9.4.0, < 13.0.0 13.0.0 GHSA-g7cr-3p24-7wf7

Advisories 6

References