Impact
Pillow’s TGA RLE encoder incorrectly reads past the end of its packed row buffer when saving a mode 1 image with RLE compression. The over‑read copies adjacent process heap bytes into the generated TGA file, exposing potentially sensitive data that the process holds in memory. This over‑read is a classic out‑of‑bounds read (CWE-125) and can compromise the confidentiality of image files produced by the library. The vulnerability does not corrupt memory or allow code execution; it simply leaks data that is reachable via the generated image.
Affected Systems
Python-Pillow users should be aware that all releases from 5.2.0 through the last patch-before-12.3.0 are vulnerable. The issue is fixed in Pillow 12.3.0; any installation of Pillow older than that should be upgraded to 12.3.0 the over‑read path.
Risk and Exploitability
The CVSS score of 6.5 indicates a medium impact; the EPSS score of less than 1% suggests that exploitation is currently rare or uncertain, and the vulnerability is not listed in CISA's KEV catalog. Based on the description, it is inferred that the attack vector is local: an application with write access to the file system can produce a malicious image that leaks internal heap contents to any user who can read the file. No elevated privileges or network exposure are required, so the risk is limited to the local or shared storage environment in which the image is eventually accessed.
OpenCVE Enrichment
Github GHSA