CVE-2014-1932 json
PIL and Pillow Vulnerable to Symlink Attack on Tmpfiles
published 2014-04-17 12 y ago modified 2026-06-17 4 mo ago also GHSA-x895-2wrm-hvp7 , PYSEC-2014-22 , EUVD-2014-0041
- cvss
- 7.7
- version 3.1, GitHub
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.5%
- EPSS 0.5% chance of exploitation in 30 days, percentile 42%
- public exploits
- 0
- none known
Summary
The (1) load_djpeg function in JpegImagePlugin.py, (2) Ghostscript function in EpsImagePlugin.py, (3) load function in IptcImagePlugin.py, and (4) _copy function in Image.py in Python Image Library (PIL) 1.1.7 and earlier and Pillow before 2.3.1 do not properly create temporary files, which allow local users to overwrite arbitrary files and obtain sensitive information via a symlink attack on the temporary file.
Patch / fix
- pypi pillow 2.3.1
- pillow Debian 14, Debian 13, Debian 12 2.4.0-1
debian advisories DEBIAN-CVE-2014-1932
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2014-1932 updated cvss 2.1
python-imaging: insecure temporary file creation
-
Red Hat Enterprise Linux 5 python-imaging Red Hat Enterprise Linux 6 python-imaging, python-imaging-tk, python-imaging-sane Red Hat Enterprise Linux 7 python-pillow, python-pillow-qt, python-pillow-tk, python-pillow-saneaffected: no fix planned “Will not fix”
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
0.50% chance of exploitation in the next 30 days, higher than 42% of all scored CVEs (FIRST EPSS, 2026-11-09).
Exploits and checks
- github.com https://github.com/python-imaging/Pillow/commit/4e9f367dfd3f04c8f5d23f7f759ec12782e10ee7 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 2.0 | 4.4 | AV:L/AC:M/Au:N/C:P/I:P/A:P |
| GitHub | 3.1 | 7.7 | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | pillow | <2.3.1 |
2.3.1 |
Classification
- Weakness
-
- CWE-59 Improper Link Resolution Before File Access
References
-
github.com
/python-imaging/Pillow/commit/4e9f367dfd3f04c8f5d23f7f759ec12782e10ee7
web, exploit, patch
-
security.gentoo.org
/glsa/201612-52
vendor-advisory, web, advisory
-
ubuntu.com
/usn/USN-2168-1
vendor-advisory, web, advisory
-
lists.opensuse.org
/opensuse-updates/2014-05/msg00002.html
vendor-advisory, web
-
bugs.debian.org
/cgi-bin/bugreport.cgi?bug=737059
web
-
openwall.com
/lists/oss-security/2014/02/11/1
mailing-list, web
-
securityfocus.com
/bid/65511
vdb-entry, web
-
nvd.nist.gov
/vuln/detail/CVE-2014-1932
advisory
-
github.com
/pypa/advisory-database/tree/main/vulns/pillow/PYSEC-2014-22.yaml
web
-
github.com
/python-pillow/Pillow
package
-
web.archive.org
/web/20170103151725/http://www.securityfocus.com/bid/65511
web
-
github.com
/advisories/GHSA-x895-2wrm-hvp7
advisory
Sources
- CVE List CVE-2014-1932
- GitHub Advisory GHSA-x895-2wrm-hvp7
- NVD CVE-2014-1932
- OSV PYSEC-2014-22
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.