CVE-2026-59203 json
Pillow EpsImagePlugin negative %%BeginBinary byte count causes infinite loop denial of service
published 2026-07-14 3 mo ago modified 2026-10-24 15 d ago also BIT-pillow-2026-59203 , EUVD-2026-43741 , GHSA-pg7v-jwj7-p798 , PYSEC-2026-3452
- cvss
- 5.3
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 34%
- public exploits
- 0
- none known
Summary
Pillow is a Python imaging library. From 12.0.0 through 12.2.0, Pillow's EPS parser in PIL/EpsImagePlugin.py accepts a negative byte count in the %%BeginBinary directive, allowing a crafted EPS file to cause Image.open() to seek backwards to the same directive and parse it repeatedly in an infinite loop. 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-59203
- pillow Ubuntu 26.04 LTS 12.1.1-2ubuntu1.4
ubuntu advisories UBUNTU-CVE-2026-59203
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
Vendor 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-59203 updated cvss 5.3
Pillow: Pillow: Denial of Service via crafted EPS file
-
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/bootc-azure-cuda-rhel9, +1 more Red Hat OpenShift AI (RHOAI) rhoai/odh-automl-rhel9, rhoai/odh-mlflow-rhel9, rhoai/odh-autorag-rhel9, rhoai/odh-vllm-gaudi-rhel9, rhoai/odh-llm-d-kv-cache-rhel9, rhoai/odh-llama-stack-core-rhel9, +27 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 Enterprise Linux AI (RHEL AI) 3 rhelai3/disk-image-cuda-rhel9 Red Hat OpenShift AI (RHOAI) rhoai/odh-caikit-nlp-rhel9, rhoai/odh-kserve-agent-rhel9, rhoai/odh-kserve-router-rhel9, rhoai/odh-kserve-controller-rhel9, rhoai/odh-llm-d-inference-scheduler-rhel9not affected: vulnerable code not present
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
- yes
- Technical impact
- partial
- Assessed
- 3 mo ago
Exploit prediction
0.40% chance of exploitation in the next 30 days, higher than 34% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/python-pillow/Pillow/security/advisories/GHSA-pg7v-jwj7-p798 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L |
| GitHub | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L |
| NVD | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| OSV | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | pillow | >=12.0.0, <12.3.0 |
12.3.0 |
| bitnami | pillow | >=12.0.0, <12.3.0 |
12.3.0 |
Affected products
- python-pillow Pillow
Classification
- Weakness
-
- CWE-835 Loop with Unreachable Exit Condition
References
-
github.com
/python-pillow/Pillow/pull/9708
web, issue-tracking, patch
-
github.com
/python-pillow/Pillow/commit/03992618118b4a76b6163cd72ab5ecd684133b83
web, patch
-
github.com
/python-pillow/Pillow/security/advisories/GHSA-pg7v-jwj7-p798
exploit, web, vendor-advisory, advisory, evidence
-
github.com
/python-pillow/Pillow/releases/tag/12.3.0
web, release-notes, article, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-59203
advisory, web
-
github.com
/pypa/advisory-database/tree/main/vulns/pillow/PYSEC-2026-3452.yaml
web
-
github.com
/python-pillow/Pillow
package
Sources
- CVE List CVE-2026-59203
- GitHub Advisory GHSA-pg7v-jwj7-p798
- NVD CVE-2026-59203
- OSV BIT-pillow-2026-59203
- OSV PYSEC-2026-3452
Fencer Vulns 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.