Impact
Pillow’s mmap raw codec path, used to load uncompressed McIdas AREA images, performs an out‑of‑bounds read when the header supplies a row stride that is smaller than the natural row width. Functions such as Image.tobytes(), getpixel, convert, or save then access data beyond the mapped region, potentially reading adjacent memory or triggering a fault. This flaw is a classic buffer over‑read, classified as CWE‑125, and can leak sensitive data from the process’s address space but does not provide code execution.
Affected Systems
The vulnerable product is Pillow, the Python imaging library. Any release prior to version 12.3.0 that supports the mmap raw codec for McIdas AREA files is affected. Applications that load user‑controlled or externally supplied images with Pillow in those versions are at risk; Pillow 12.3.0 and later enforce proper bounds checking and are not impacted.
Risk and Exploitability
With a CVSS score of 8.3, the vulnerability is considered high severity. The EPSS score of < 1% indicates a low likelihood of exploitation under current conditions, and the flaw is not listed in CISA’s KEV catalog. Based on the description, it is inferred that the attack requires the adversary to supply a crafted McIdas AREA file to an application that uses Pillow; if the application accepts images from remote users, this can occur remotely. The attack does not grant code execution but can expose process memory or crash the application.
OpenCVE Enrichment
Github GHSA