CVE-2014-3589
NoneCVSS
—
EPSS
3.4%
Published
Aug 25, 2014
CISA due date
—
Cloudanix analysis
Older image-handling software can be crashed by attackers sending specially crafted picture files, interrupting any service that opens or displays images.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw in IcnsImagePlugin.py permits remote denial of service when parsing an ICNS image containing a crafted or invalid block size, causing improper input validation that leads to crashes or excessive resource consumption without affecting confidentiality or integrity.
Why it matters to the business
Applications relying on vulnerable Pillow or PIL versions for image handling become susceptible to remote service disruptions, potentially halting operations that depend on image uploads or processing and increasing downtime costs.
How an attack unfolds
An attacker creates a malicious ICNS file embedding an oversized or malformed block size value, then delivers it through any vector that triggers image parsing in the vulnerable library, such as file uploads or web requests, resulting in the application crashing or becoming unresponsive.
How to fix it
Upgrade to Pillow 2.3.2, 2.5.2, or later versions; apply patches from distribution maintainers such as Debian or openSUSE for python-imaging packages; disable ICNS support if unused.
How to confirm the fix worked
Confirm the installed Pillow or PIL version meets or exceeds the fixed releases; test image parsing functionality with known-good ICNS files in a controlled environment after upgrade.
Typical attack path
- Locate an application or service that accepts and processes ICNS or image files using vulnerable Pillow/PIL
- Craft an ICNS image containing an invalid block size value
- Submit the crafted file via upload, API, or other input mechanism
- Trigger parsing to induce denial of service
How to detect it
Review application and web server logs for unexpected crashes or high resource usage immediately following image file uploads; inspect upload directories or processing queues for ICNS files with anomalous sizes.
What your security team should do
- Prioritize immediate upgrade of Pillow and PIL across all affected systems given the long exposure window since 2014
- Audit image-processing code paths to enforce strict input validation and size limits
- Implement network or application-level filtering to reject suspicious ICNS files until patched
The record
PIL/IcnsImagePlugin.py in Python Imaging Library (PIL) and Pillow before 2.3.2 and 2.5.x before 2.5.2 allows remote attackers to cause a denial of service via a crafted block size.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| PyPI | pillow | 0 | 2.3.2 |
| PyPI | pillow | 2.5 | 2.5.2 |
| Debian:11 | pillow | 0 | 2.5.3-1 |
| Debian:12 | pillow | 0 | 2.5.3-1 |
| Debian:13 | pillow | 0 | 2.5.3-1 |
| Debian:6.0 | python-imaging | 0 | 1.1.7-2+deb6u1 |
| Debian:7 | python-imaging | 0 | 1.1.7-4+deb7u1 |
| Mageia:3 | python-imaging | 0 | 1.1.7-7.2.mga3 |
| Mageia:4 | python-pillow | 0 | 2.2.1-0.5.mga4 |
| SUSE:Enterprise Storage 1.0 | calamari-clients | 0 | 1.2.2+git.1428648634.40dfe5b-3.1 |
| SUSE:Enterprise Storage 1.0 | ceph | 0 | 0.80.9-5.1 |
| SUSE:Enterprise Storage 1.0 | ceph-deploy | 0 | 1.5.19+git.1431355031.6178cf3-9.1 |
| SUSE:Enterprise Storage 1.0 | python-Pillow | 0 | 2.7.0-4.1 |
| SUSE:Enterprise Storage 1.0 | python-djangorestframework | 0 | 2.3.12-4.2 |
| Ubuntu:14.04:LTS | pillow | 0 | 2.3.0-1ubuntu3.2 |
| openSUSE:Tumbleweed | python-Pillow | 0 | 8.3.2-1.2 |
| openSUSE:Tumbleweed | python-Pillow | 0 | 3.4.2-1.1 |
| openSUSE:Tumbleweed | python-Pillow | 0 | 3.1.1-4.1 |
| openSUSE:Tumbleweed | python-Pillow | 0 | 10.3.0-1.1 |
| pypi | PIL | 0.0.0 | No fix |
| pypi | Pillow | 2.3.0 | No fix |
| pypi | Pillow | 2.5 | No fix |
| pypi | Pillow | 2.5.0 | No fix |
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