CVE-2026-59198 json
Pillow TGA RLE encoder can serialize up to ~57 KB of adjacent heap data into generated images
published 4mo ago modified 18d ago also BIT-pillow-2026-59198 , EUVD-2026-43752 , GHSA-fj7v-r99m-22gq , PYSEC-2026-3494
- cvss
- 6.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 24%
- public exploits
- 0
- none known
Summary
Pillow is a Python imaging library. From 5.2.0 until 12.3.0, Pillow's TGA RLE encoder reads past its packed row buffer when saving a mode 1 image with TGA RLE compression, allowing adjacent process heap bytes to be copied into the generated TGA file. This issue is fixed in version 12.3.0.
Patch / fix
- pypi pillow 12.3.0
- bitnami pillow 12.3.0
- python pillow 12.3.0
- pillow Debian 14 12.3.0-1
debian advisories DEBIAN-CVE-2026-59198
- pillow Ubuntu 22.04 LTS 9.0.1-1ubuntu0.5
- pillow Ubuntu 24.04 LTS 10.2.0-1ubuntu1.3
- pillow Ubuntu 26.04 LTS 12.1.1-2ubuntu1.3
- pillow Ubuntu Pro 20.04 LTS 7.0.0-4ubuntu0.9+esm1
ubuntu advisories UBUNTU-CVE-2026-59198
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- python-Pillow SLES 16.0, SLES for SAP applications 16.0 11.3.0-160000.8.1
- python-Pillow SLES for SAP 15 SP6, SLES for SAP 15 SP5, SLES for SAP 15 SP4 +8 more 9.5.0-150400.5.25.1
- python-Pillow SLE Module for Package Hub 15 SP7 7.2.0-150300.3.30.1
suse advisories SUSE-SU-2026:23217-1SUSE-SU-2026:23228-1SUSE-SU-2026:3268-1SUSE-SU-2026:3084-1
- python-Pillow openSUSE Leap 16.0 11.3.0-160000.8.1
- python-Pillow openSUSE Tumbleweed 12.3.0-2.1
opensuse advisories openSUSE-SU-2026:21544-1openSUSE-SU-2026:11283-1
Is CVE-2026-59198 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerVendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-59198 updated cvss 6.5
Pillow: Pillow: Information disclosure via TGA RLE encoder out-of-bounds read
-
Red Hat Lightspeed Core lightspeed-core/rag-tool-cpu-rhel9, lightspeed-core/lightspeed-stack-rhel9, lightspeed-core/rag-tool-cuda-12.9-rhel9 Red Hat OpenShift Lightspeed openshift-lightspeed/lightspeed-ocp-rag-rhel9, openshift-lightspeed/lightspeed-service-api-rhel9, openshift-lightspeed-tech-preview/lightspeed-rag-tool-rhel9 Red Hat AI Inference Server rhaii/vllm-cpu-rhel9, rhaii/vllm-tpu-rhel9, rhaii/vllm-cuda-rhel9, rhaii/vllm-rocm-rhel9, rhaiis/vllm-cpu-rhel9, rhaiis/vllm-tpu-rhel9, +9 more Red Hat Enterprise Linux AI (RHEL AI) 3 rhelai3/bootc-cuda-rhel9, rhelai3/bootc-rocm-rhel9, rhelai3/bootc-gaudi-rhel9, rhelai3/bootc-aws-cuda-rhel9, rhelai3/bootc-gcp-cuda-rhel9, rhelai3/disk-image-cuda-rhel9, +2 more Red Hat OpenShift AI (RHOAI) rhoai/odh-automl-rhel9, rhoai/odh-mlflow-rhel9, rhoai/odh-autorag-rhel9, rhoai/odh-caikit-nlp-rhel9, rhoai/odh-vllm-gaudi-rhel9, rhoai/odh-kserve-agent-rhel9, +32 more Red Hat Quay 3 quay/quay-rhel8, quay/quay-rhel9affected: workaround, no fix available “Fix deferred”
-
Red Hat Exploit Intelligence exploit-intelligence-tech-preview/vulnerability-analysis-rhel9 Red Hat Ansible Automation Platform 2 python-pillow 10.3.0-1.el9ap, ansible-automation-platform-26/hub-rhel9, ansible-automation-platform-27/hub-rhel9, ansible-automation-platform/automation-dashboard-rhel9, ansible-automation-platform-25/lightspeed-chatbot-rhel8, ansible-automation-platform-26/lightspeed-chatbot-rhel9, +1 more Red Hat Enterprise Linux 7 python-pillow, python-pillow-qt, python-pillow-tk, python-pillow-sane, python-pillow 10.3.0-1.el9ap Red Hat Enterprise Linux 8 python3-pillow, python3-pillow-tk, python-pillow 10.3.0-1.el9ap Red Hat Satellite 6 python-pillow 10.3.0-1.el9ap, python-pillow 12.2.0-1.el8pcunder investigation
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 3mo ago
Exploit prediction
0.31% chance of exploitation in the next 30 days, higher than 24% of all scored CVEs (FIRST EPSS, 2026-11-11).
Exploits and checks
- github.com https://github.com/python-pillow/Pillow/security/advisories/GHSA-fj7v-r99m-22gq referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:L |
| GitHub | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:L |
| NVD | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
| OSV | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
| OSV | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:L |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | pillow | >=5.2.0, <12.3.0 |
12.3.0 |
| bitnami | pillow | >=5.2.0, <12.3.0 |
12.3.0 |
Affected products
- python-pillow Pillow
Classification
- Weakness
-
- CWE-125 Out-of-bounds Read
References
-
github.com
/python-pillow/Pillow/pull/9709
web, issue-tracking, patch
-
github.com
/python-pillow/Pillow/commit/eada3cbd7fb9963ee90673fb7b5270124a0d5f4b
web, patch
-
github.com
/python-pillow/Pillow/security/advisories/GHSA-fj7v-r99m-22gq
exploit, web, vendor-advisory, advisory
-
github.com
/python-pillow/Pillow/releases/tag/12.3.0
web, release-notes, article
-
nvd.nist.gov
/vuln/detail/CVE-2026-59198
advisory, web
-
github.com
/python-pillow/Pillow
package
-
pypi.org
/project/pillow
package
-
github.com
/advisories/GHSA-fj7v-r99m-22gq
advisory
Sources
- CVE List CVE-2026-59198
- GitHub Advisory GHSA-fj7v-r99m-22gq
- NVD CVE-2026-59198
- OSV BIT-pillow-2026-59198
- OSV PYSEC-2026-3494
- Maintainer advisory GHSA-fj7v-r99m-22gq
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
The maintainers of python-pillow/Pillow published their own advisory on GitHub. Reviewed sources take precedence over it.