---
title: "CVE-2026-112393: Pillow: Heap buffer overflow in _tiffWriteProc when saving TIFF to BytesIO"
url: https://erroneo.us/security/cve/CVE-2026-112393/
description: "CVE-2026-112393 (Pillow (PyPI)): Pillow is a Python imaging library. From 2.0.0 until 13.0.0, Pillow has a heap buffer overflow and stale-heap disclosure in…"
type: vulnerability-record
section: "Security Digest"
date_published: 2026-10-19
date_modified: 2026-10-21
publisher: erroneo.us
author: erroneo.us Security Desk
cve: "CVE-2026-112393"
kev: false
cvss: 9.2
epss: 0.00528
license: All rights reserved. Quote with attribution and a link.
---

# CVE-2026-112393: Pillow: Heap buffer overflow in _tiffWriteProc when saving TIFF to BytesIO

**Signal:** Critical and remotely reachable. No known exploitation yet, but it is network-reachable without credentials. (Computed from CISA KEV, EPSS and CVSS; not an editorial verdict.)

## Should you act?

- Not in CISA KEV , but CISA’s SSVC assessment records a public proof-of-concept, so attack code exists.
- EPSS 0.5% , percentile 44: FIRST’s model estimates a 0.5% chance of exploitation activity in the next 30 days, higher than 44% of all scored CVEs (low). EPSS is a probability, not a verdict.
- Remotely reachable with no login and no user interaction. If the vulnerable service is exposed to the internet, prioritize it.
- Only applies if your dependency tree includes Pillow (PyPI) >= 2.0.0, < 13.0.0, fixed in 13.0.0 . Check your lockfile, including transitive dependencies.
- Editorial verdict: Patch this week. Pillow 13.0.0: Critical Image-Parsing Memory Bugs Fixed — If your service opens images that users or the internet supply, move to Pillow 13.0.0 this week; the worst bugs are memory corruption reachable from a crafted file, and reproducers are in the published advisories.

## What it is

Pillow is a Python imaging library. From 2.0.0 until 13.0.0, Pillow has a heap buffer overflow and stale-heap disclosure in tiffWriteProc when saving compressed TIFF data through libtiff to a target without a usable fileno(), such as BytesIO. The callback sizes its allocation from the prior buffer size instead of the current write position, allowing an attacker-controlled out-of-line TIFF tag or retained ICC profile to be copied beyond the allocation after libtiff seeks forward. This overflow can crash the process and may allow code execution. Independently, unwritten alignment gaps in compressed TIFF output larger than 64 KiB can disclose stale heap bytes without a crafted tag. File paths and targets with real file descriptors are unaffected. This issue is fixed in version 13.0.0.

## Affected packages

- PyPI `Pillow` >= 2.0.0, < 13.0.0 → fixed: 13.0.0

## Affected products (CVE record)

- python-pillow Pillow: >= 2.0.0, < 13.0.0

## Severity

- GitHub_M CVSS 4.0: 9.2 `CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N`
- GitHub CVSS 4.0: 9.2 `CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N`

## Exploitation

- CISA KEV: not listed (no confirmed in-the-wild exploitation known to CISA).
- CISA SSVC assessment: exploitation poc , automatable no , technical impact total .
- FIRST EPSS (model of 2026-10-21): 0.53% probability of exploitation activity in the next 30 days; percentile 44.

## Sources

- [GitHub Advisory GHSA-332p-7hrc-92wf](https://github.com/advisories/GHSA-332p-7hrc-92wf)
- [CVE.org record CVE-2026-112393](https://www.cve.org/CVERecord?id=CVE-2026-112393)
- [NVD entry CVE-2026-112393](https://nvd.nist.gov/vuln/detail/CVE-2026-112393)
- [github.com](https://github.com/python-pillow/Pillow/security/advisories/GHSA-332p-7hrc-92wf)
- [github.com](https://github.com/python-pillow/Pillow/commit/11582e5ffbdceb973d5ee593f3105af5a9852b40)
- [github.com](https://github.com/python-pillow/Pillow/releases/tag/13.0.0)

---
Source page: https://erroneo.us/security/cve/CVE-2026-112393/ · Security Digest: https://erroneo.us/security/ · More: https://erroneo.us/llms.txt
