CVE-2014-9601
NoneCVSS
—
EPSS
4.6%
Published
Jan 16, 2015
CISA due date
—
Cloudanix analysis
A flaw in an image-processing library lets attackers crash or slow down programs by sending a specially made picture file.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Low
- Patch risk
- Low
What it actually does
Improper handling of PNG compressed text chunks allows an attacker-supplied image to trigger massive memory allocation during decompression, resulting in denial of service.
Why it matters to the business
Applications or services that process untrusted PNG images can be forced offline or slowed to unusability, interrupting operations that rely on image handling.
How an attack unfolds
An attacker crafts a PNG containing a compressed text chunk engineered to expand to a very large size on decompression; the malicious image is delivered to any system using an affected Pillow version, which then allocates excessive memory while processing the chunk and crashes or becomes unresponsive.
How to fix it
Upgrade python-pillow to version 2.7.0 or later on all affected systems; where immediate upgrade is not possible, implement input validation or sandboxing to reject or limit processing of untrusted PNG files.
How to confirm the fix worked
Confirm the installed Pillow version is 2.7.0 or newer; test by attempting to process a known-malicious PNG sample and verifying that memory usage remains bounded and no crash occurs.
Typical attack path
- Create a PNG image embedding a compressed text chunk that expands dramatically on decompression
- Deliver the image to a target application or service that uses Pillow for image processing
- Trigger image parsing through normal application workflows such as uploads, thumbnails, or validation
- Observe resource exhaustion leading to denial of service
How to detect it
Review application logs for PNG parsing errors accompanied by sudden memory spikes or process terminations; correlate with web or file-upload access logs showing unexpected PNG files.
What your security team should do
- Prioritize upgrade of Pillow to 2.7.0+ across all environments handling user-supplied images
- Add pre-processing filters or size limits on PNG text chunks in image pipelines until patches are applied
- Monitor resource usage metrics for image-processing services to detect anomalous memory spikes
- Review and deprecate any remaining dependencies on Pillow versions older than 2.7.0
The record
Pillow before 2.7.0 allows remote attackers to cause a denial of service via a compressed text chunk in a PNG image that has a large size when it is decompressed.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| PyPI | pillow | 0 | 2.7.0 |
| Debian:11 | pillow | 0 | 2.6.1-2 |
| Debian:12 | pillow | 0 | 2.6.1-2 |
| Debian:13 | pillow | 0 | 2.6.1-2 |
| Mageia:4 | python-pillow | 0 | 2.6.2-1.1.mga4 |
| Ubuntu:14.04:LTS | pillow | 0 | 2.3.0-1ubuntu3.4 |
| Ubuntu:14.04:LTS | pillow | 0 | 2.3.0-1ubuntu3.2 |
| Ubuntu:14.04:LTS | pillow | 0 | 2.3.0-1ubuntu3.3 |
| Ubuntu:16.04:LTS | pillow | 0 | 3.1.2-0ubuntu1.1 |
Related vulnerabilities
- CVE-2026-25990 Pillow is a Python imaging library. Also affects pillow
- CVE-2025-48379 Pillow is a Python imaging library. Also affects pillow
- CVE-2024-28219 In _imagingcms.c in Pillow before 10.3.0, a buffer overflow exists because strcpy is used… Also affects pillow
- GHSA-4fx9-vc88-q2xc Infinite loop in Pillow Also affects pillow
- GHSA-jgpv-4h4c-xhw3 Uncontrolled Resource Consumption in pillow Also affects pillow
- CVE-2016-3076 Heap-based buffer overflow in the j2k_encode_entry function in Pillow 2.5.0 through 3.1.1… Also affects pillow
- CVE-2016-9190 Pillow before 3.3.2 allows context-dependent attackers to execute arbitrary code by using… Also affects pillow
- CVE-2016-9189 Pillow before 3.3.2 allows context-dependent attackers to obtain sensitive information by… Also affects pillow