Impact
Pillow, a commonly used Python imaging library, builds a combined bitmap of glyph images in its FontFile.compile() routine by calling Image.new("1", (xsize, ysize)). In versions before 12.3.0, this call omitted a safety check that would normally thwart decompression bombs, meaning a maliciously crafted font could trigger massive memory allocation. The flaw is classified as CWE‑1050 and CWE‑789, leading to the process consuming excessive resources and potentially crashing. The effect is a denial of service that becomes apparent whenever an application processes a compromised font file.
Affected Systems
Any deployment that uses Pillow versions older than 12.3.0 is at risk. This includes Python web applications, desktop utilities, data pipelines, and any service that accepts arbitrary font uploads or renders fonts from external sources. All platforms running a vulnerable Pillow installation are potentially impacted, regardless of operating system.
Risk and Exploitability
The CVSS score of 7.5 indicates moderate to high severity. The EPSS score of < 1% suggests a very low yet non‑zero probability of exploitation at the time of analysis. The vulnerability is not listed in the CISA KEV catalog. Exploitation requires that a malicious or tampered font file be processed by the application, so the likely attack vectors are local, where a user supplies a harmful font, or remote, where a web or service-side component loads untrusted font data. Successful exploitation leads to a denial of service of the Pillow process and, by extension, any higher‑level functionality built atop it.
OpenCVE Enrichment
Github GHSA