Impact
The vulnerability arises from an out-of-bounds read in Pillow's TIFF tile and RGBA decoder paths. When a TIFF file contains duplicated PhotometricInterpretation or BitsPerSample tags, the library fails to confirm that the input data fits within the bounds expected by libtiff, causing Pillow to copy adjacent heap data into the output pixel buffer. This leaks memory contents and may corrupt the image data or crash the process, presenting a classic buffer overread classified under CWE-126.
Affected Systems
Pillow, the widely used Python imaging library, is affected by versions 8.1.0 through 13.0.0 (inclusive). Version 13.0.0 contains the fix. Any Python application that imports Pillow 8.1.0–12.9.0 and processes TIFF images may be vulnerable.
Risk and Exploitability
With a CVSS score of 8.8 the vulnerability attains high severity. The exploit probability is not recorded in EPSS, and it is not listed in CISA’s KEV catalog. The likely attack vector is via a crafted TIFF file fed to an application that uses Pillow for image decoding—such as a web service that accepts user-supplied images or a desktop application that opens files. An attacker who controls the image stream can trigger an out-of-bounds read, potentially leaking sensitive heap data or crashing the process, which could be leveraged for further exploitation or denial-of-service.
OpenCVE Enrichment
Github GHSA