CVE-2021-28678 json
Insufficient Verification of Data Authenticity in Pillow
published 2021-06-02 5 y ago modified 2026-09-08 2 mo ago also BIT-pillow-2021-28678 , EUVD-2021-0185 , GHSA-hjfx-8p6c-g7gx , PYSEC-2021-94
- cvss
- 5.5
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.7%
- EPSS 0.7% chance of exploitation in 30 days, percentile 54%
- public exploits
- 0
- none known
Summary
An issue was discovered in Pillow before 8.2.0. For BLP data, BlpImagePlugin did not properly check that reads (after jumping to file offsets) returned data. This could lead to a DoS where the decoder could be run a large number of times on empty data.
Patch / fix
- pypi pillow 8.2.0
- bitnami pillow 8.2.0
- python pillow 8.2.0
- pillow Debian 14, Debian 13, Debian 12 8.1.2+dfsg-0.2
debian advisories DEBIAN-CVE-2021-28678
- pillow Ubuntu 18.04 LTS 5.1.0-1ubuntu0.6
- pillow Ubuntu 20.04 LTS 7.0.0-4ubuntu0.4
ubuntu advisories UBUNTU-CVE-2021-28678
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- python-pillow RHEL 8 5.1.1-16.el8
- python3-pillow RHEL 8 5.1.1-16.el8
red hat advisories RHSA-2021:4149
- python-Pillow openSUSE Leap 15.5 7.2.0-150300.3.12.1
- python-Pillow OpenStack Cloud Crowbar 9, OpenStack Cloud 9 5.2.0-3.8.1
suse advisories SUSE-SU-2024:1607-1SUSE-SU-2021:1938-1
- python3-pillow AlmaLinux 8 5.1.1-16.el8
almalinux advisories ALSA-2021:4149
- python-pillow Rocky Linux 8 5.1.1-16.el8
rocky linux advisories RLSA-2021:4149
- py3-pillow Alpine 3.24, Alpine 3.23, Alpine 3.22 +8 more 8.2.0-r0
alpine advisories ALPINE-CVE-2021-28678
Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- github.com/python-pillow/Pillow#5377 commit
- github.com/python-pillow/Pillow#5377 pull request
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-2021-28678 updated cvss 7.5
python-pillow: Excessive looping in BLP image reader
-
Red Hat Enterprise Linux 7 python-pillow, python-pillow-qt, python-pillow-tk, python-pillow-saneaffected: workaround, no fix planned “To mitigate this feature on Red Hat Quay keep the invoice generation feature disabled, as it is by default.”
-
Red Hat Quay 3 quay/quay-rhel8affected: workaround, no fix available “To mitigate this feature on Red Hat Quay keep the invoice generation feature disabled, as it is by default.”
-
Red Hat Enterprise Linux AppStream (v. 8) python-pillow 5.1.1-16.el8, python3-pillow 5.1.1-16.el8fixed: vendor fix “To mitigate this feature on Red Hat Quay keep the invoice generation feature disabled, as it is by default.” RHSA-2021:4149
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.73% chance of exploitation in the next 30 days, higher than 54% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| GitHub | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H |
| NVD | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H |
| NVD | 2.0 | 4.3 | AV:N/AC:M/Au:N/C:N/I:N/A:P |
| OSV | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | pillow | >=5.1.0, <8.2.0 <8.2.0 |
8.2.0 |
| bitnami | pillow | <8.2.0 |
8.2.0 |
Classification
- Weakness
-
- CWE-345 Insufficient Verification of Data Authenticity
References
-
github.com
/python-pillow/Pillow/pull/5377
web, patch, third-party-advisory, advisory
-
github.com
/python-pillow/Pillow/pull/5377/commits/496245aa4365d0827390bd0b6fbd11287453b3a1
web
-
lists.fedoraproject.org
/archives/list/package-announce%40lists.fedoraproject.org/message/MQHA5HAIBOYI3R6HDWCLAGFTIQP767FL/
vendor-advisory, web
-
security.gentoo.org
/glsa/202107-33
vendor-advisory, web, third-party-advisory, advisory
-
pillow.readthedocs.io
/en/stable/releasenotes/8.2.0.html#cve-2021-28678-fix-blp-dos
web, release-notes, vendor-advisory, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2021-28678
advisory, web
-
github.com
/advisories/GHSA-hjfx-8p6c-g7gx
advisory
-
github.com
/pypa/advisory-database/tree/main/vulns/pillow/PYSEC-2021-94.yaml
web
-
github.com
/python-pillow/Pillow
package
-
lists.fedoraproject.org
/archives/list/package-announce@lists.fedoraproject.org/message/MQHA5HAIBOYI3R6HDWCLAGFTIQP767FL
web
-
lists.fedoraproject.org
/archives/list/package-announce@lists.fedoraproject.org/message/MQHA5HAIBOYI3R6HDWCLAGFTIQP767FL/
web
Sources
- CVE List CVE-2021-28678
- GitHub Advisory GHSA-hjfx-8p6c-g7gx
- NVD CVE-2021-28678
- OSV BIT-pillow-2021-28678
- OSV PYSEC-2021-94
Fencer Vulns 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.