---
title: Pillow 13.0.0 fixes a batch of Python image-library flaws rated CVSS 9.2, including Ghostscript argument injection through the EPS filename (CVE-2026-112900) | ctxsec
url: https://ctxsec.com/items/pillow-13-0-0-critical-eps-jpeg-tiff-fixes
description: ""
status: "confirmed (Pillow GitHub advisories and CVE records; 13.0.0 released Oct 16; no exploitation reported)"
published: 2026-10-23
---

> 

[← Cybersecurity News](/news) · [markdown](/items/pillow-13-0-0-critical-eps-jpeg-tiff-fixes.md)

confirmed (Pillow GitHub advisories and CVE records; 13.0.0 released Oct 16; no exploitation reported)

2026-10-23

### Pillow 13.0.0 fixes a batch of Python image-library flaws rated CVSS 9.2, including Ghostscript argument injection through the EPS filename (CVE-2026-112900)

Pillow, the most widely used Python imaging library, shipped **13.0.0** on Oct 16 with a large set of security fixes. Its advisories went public Oct 17-19, and the CVE records (assigned by GitHub, CVSS v4 9.2) were updated through Oct 23. None of the flaws is reported as exploited.

- **CVE-2026-112900** (GHSA-w889-685w-c8fh, Pillow 2.6.0 to 12.3.0): when opening EPS, Pillow passes the file's name to Ghostscript after `-f` without making it a safe path. A name starting with `-` is read as a Ghostscript option, and a name starting with `@` makes Ghostscript read more arguments from a file. With control of that file, the reporter ran commands even with Pillow's default `-dSAFER`. The trigger is the **filename**, not the EPS content, and the `gs` binary must be installed. The maintainers rate it Moderate; the CVE record says 9.2.
- **CVE-2026-112403** (GHSA-8g5g-8vmr-9782): heap overflow in the JPEG decoder when `draft()`/`thumbnail()` downscales a crafted 8-bit lossless JPEG on builds linked to libjpeg-turbo 3.x.
- **CVE-2026-112393** (GHSA-332p-7hrc-92wf, since Pillow 2.0.0): heap overflow and stale-heap leak when saving compressed TIFF to an in-memory target such as `BytesIO`. Saving to a real file isn't affected.
- The same release also fixes a bundled libopenjp2 heap overflow (GHSA-78g4-xqwv-q3g8, High) and several DoS bugs in GIF, XBM and PDF handling.

**Do:** `pip install -U "Pillow>=13.0.0"` and rebuild containers and wheels that vendor older copies. Pillow 13 drops Python 3.10. Until then, block EPS uploads or remove `gs` from upload-processing hosts, and never pass a user-chosen filename to `Image.open()`.

Sources: [Pillow advisory GHSA-w889-685w-c8fh (CVE-2026-112900)](https://github.com/python-pillow/Pillow/security/advisories/GHSA-w889-685w-c8fh) · [OSV: CVE-2026-112900 (CVSS v4 9.2, fixed in 13.0.0)](https://osv.dev/vulnerability/CVE-2026-112900) · [OSV: CVE-2026-112403 JPEG decoder heap overflow](https://osv.dev/vulnerability/CVE-2026-112403) · [OSV: CVE-2026-112393 TIFF-to-BytesIO heap overflow](https://osv.dev/vulnerability/CVE-2026-112393) · [Pillow security advisories list](https://github.com/python-pillow/Pillow/security/advisories)
