PILLOW , the widely used Python image library, has a critical flaw tied to how it handles EPS images. The vulnerability, CVE-2026-112900, arises because Pillow passes the EPS file name to Ghostscript when converting the PostScript to pixels, without first validating the name. An attacker could supply a file name that Ghostscript interprets as commands rather than as a file, potentially allowing arbitrary code execution on the host if the gs program is installed.
The issue is described as being triggered by the filename rather than the content of the PostScript document itself, making vulnerable upload endpoints that reuse user-provided names a realistic attack surface.
The problem affects Pillow versions from 2.6.0 up to 12.3.0. The Pillow maintainers addressed this in version 13.0.0, released on 16 October 2026, which includes fixes for this and related issues. The CVE records assign a 9.2 out of 10 severity to the EPS, TIFF, and JPEG-thumbnail flaws in this batch, though the maintainers note that exploitation depends on specific conditions.
Two other flaws in the same release are described as high severity: a memory issue related to stale image data after a mode change and two JPEG decoding overflows; one TIFF-related overflow (CVE-2026-112393) affects memory during in-memory re-encoding, and a separate TIFF/thumbnail vector can crash or be exploited with the right sequence of actions.
Practically, organisations should upgrade to Pillow 13.0.0 (or newer) and rebuild containers or base images that bundle older copies. Until then, follow Pillow’s security guidance, such as avoiding passing attacker-controlled names to Image[.]open() for EPS, and applying the advisories’ mitigations for JPEG and TIFF workflows. Upgrading may also require Python 3.11 or newer, as Pillow 13.0.0 drops support for Python 3.10.