{"id":"CVE-2021-28678","aliases":["ALPINE-CVE-2021-28678","ALSA-2021:4149","BIT-pillow-2021-28678","DEBIAN-CVE-2021-28678","EUVD-2021-0185","GHSA-hjfx-8p6c-g7gx","MGASA-2021-0389","PYSEC-2021-94","RHSA-2021:4149","RLSA-2021:4149","SUSE-SU-2021:1938-1","SUSE-SU-2024:1607-1","UBUNTU-CVE-2021-28678","USN-4963-1"],"status":"published","title":"Insufficient Verification of Data Authenticity in Pillow","description":"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.","severity":{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.00732,"percentile":0.54585,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-345"],"published":"2021-05-10T00:00:00Z","modified":"2026-11-03T06:32:27Z","fixes":[{"ecosystem":"PyPI","package":"pillow","fixed_in":["8.2.0"],"sources":["ghsa","osv"]},{"ecosystem":"Alpine:v3.14","package":"py3-pillow","fixed_in":["8.2.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.15","package":"py3-pillow","fixed_in":["8.2.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.16","package":"py3-pillow","fixed_in":["8.2.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.17","package":"py3-pillow","fixed_in":["8.2.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.18","package":"py3-pillow","fixed_in":["8.2.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.19","package":"py3-pillow","fixed_in":["8.2.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.20","package":"py3-pillow","fixed_in":["8.2.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.21","package":"py3-pillow","fixed_in":["8.2.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.22","package":"py3-pillow","fixed_in":["8.2.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.23","package":"py3-pillow","fixed_in":["8.2.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.24","package":"py3-pillow","fixed_in":["8.2.0-r0"],"sources":["osv"]},{"ecosystem":"Bitnami","package":"pillow","fixed_in":["8.2.0"],"sources":["osv"]},{"ecosystem":"Debian:12","package":"pillow","fixed_in":["8.1.2+dfsg-0.2"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"pillow","fixed_in":["8.1.2+dfsg-0.2"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"pillow","fixed_in":["8.1.2+dfsg-0.2"],"sources":["osv"]},{"ecosystem":"Ubuntu:18.04:LTS","package":"pillow","fixed_in":["5.1.0-1ubuntu0.6"],"sources":["osv"]},{"ecosystem":"Ubuntu:20.04:LTS","package":"pillow","fixed_in":["7.0.0-4ubuntu0.4"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"5.1.0"},{"fixed":"8.2.0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.14","package":"py3-pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.2.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.15","package":"py3-pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.2.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.16","package":"py3-pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.2.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.17","package":"py3-pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.2.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.18","package":"py3-pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.2.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.19","package":"py3-pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.2.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.20","package":"py3-pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.2.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.21","package":"py3-pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.2.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.22","package":"py3-pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.2.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.23","package":"py3-pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.2.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.24","package":"py3-pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.2.0-r0"}]}]},{"source":"osv","ecosystem":"AlmaLinux:8","package":"python3-pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.1.1-16.el8"}]}],"bundled":15},{"source":"osv","ecosystem":"Bitnami","package":"pillow","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"8.2.0"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.1.2+dfsg-0.2"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.1.2+dfsg-0.2"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.1.2+dfsg-0.2"}]}]},{"source":"osv","ecosystem":"PyPI","package":"pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"5.1.0"},{"fixed":"8.2.0"}]}],"versions":["5.1.0","5.2.0","5.3.0","5.4.0","5.4.0.dev0","5.4.1","6.0.0","6.1.0","6.2.0","6.2.1","6.2.2","7.0.0","7.1.0","7.1.1","7.1.2","7.2.0","8.0.0","8.0.1","8.1.0","8.1.1","8.1.2"]},{"source":"osv","ecosystem":"Mageia:8","package":"python-pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.1.2-1.mga8"}]}],"bundled":7},{"source":"osv","ecosystem":"PyPI","package":"pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.2.0"}]}],"versions":["1.0","1.1","1.2","1.3","1.4","1.5","1.6","1.7.0","1.7.1","1.7.2","1.7.3","1.7.4","1.7.5","1.7.6","1.7.7","1.7.8","2.0.0","2.1.0","2.2.0","2.2.1","2.2.2","2.3.0","2.3.1","2.3.2","2.4.0","2.5.0","2.5.1","2.5.2","2.5.3","2.6.0","2.6.1","2.6.2","2.7.0","2.8.0","2.8.1","2.8.2","2.9.0","3.0.0","3.1.0","3.1.0.rc1","3.1.0rc1","3.1.1","3.1.2","3.2.0","3.3.0","3.3.1","3.3.2","3.3.3","3.4.0","3.4.1","3.4.2","4.0.0","4.1.0","4.1.1","4.2.0","4.2.1","4.3.0","5.0.0","5.1.0","5.2.0","5.3.0","5.4.0","5.4.0.dev0","5.4.1","6.0.0","6.1.0","6.2.0","6.2.1","6.2.2","7.0.0","7.1.0","7.1.1","7.1.2","7.2.0","8.0.0","8.0.1","8.1.0","8.1.1","8.1.2"]},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"python-pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:5.1.1-16.el8"}]}],"bundled":15},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"python-pillow-debuginfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:5.1.1-16.el8"}]}],"bundled":15},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"python-pillow-debugsource","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:5.1.1-16.el8"}]}],"bundled":15},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"python3-pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:5.1.1-16.el8"}]}],"bundled":15},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"python3-pillow-debuginfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:5.1.1-16.el8"}]}],"bundled":15},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"python3-pillow-tk-debuginfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:5.1.1-16.el8"}]}],"bundled":15},{"source":"osv","ecosystem":"Rocky Linux:8","package":"python-pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:5.1.1-16.el8"}]}],"bundled":15},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 9","package":"python-Pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.2.0-3.8.1"}]}],"bundled":14},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud Crowbar 9","package":"python-Pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.2.0-3.8.1"}]}],"bundled":14},{"source":"osv","ecosystem":"openSUSE:Leap 15.5","package":"python-Pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"7.2.0-150300.3.12.1"}]}],"bundled":6},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.1.0-1ubuntu0.6"}]}],"versions":["4.1.1-3build2","4.3.0-2ubuntu1","5.0.0-1","5.1.0-1","5.1.0-1ubuntu0.2","5.1.0-1ubuntu0.3","5.1.0-1ubuntu0.4","5.1.0-1ubuntu0.5"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"7.0.0-4ubuntu0.4"}]}],"versions":["6.1.0-1","6.1.0-1build1","6.2.1-2","7.0.0-4","7.0.0-4build1","7.0.0-4ubuntu0.1","7.0.0-4ubuntu0.2","7.0.0-4ubuntu0.3"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"pillow-python2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["6.2.1-3~build1","6.2.1-3","6.2.1-3ubuntu0.1~esm1","6.2.1-3ubuntu0.1~esm2"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.1.0-1ubuntu0.6"}]}],"versions":["4.1.1-3build2","4.3.0-2ubuntu1","5.0.0-1","5.1.0-1","5.1.0-1ubuntu0.2","5.1.0-1ubuntu0.3","5.1.0-1ubuntu0.4","5.1.0-1ubuntu0.5"],"bundled":6},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"pillow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"7.0.0-4ubuntu0.4"}]}],"versions":["6.1.0-1","6.1.0-1build1","6.2.1-2","7.0.0-4","7.0.0-4build1","7.0.0-4ubuntu0.1","7.0.0-4ubuntu0.2","7.0.0-4ubuntu0.3"],"bundled":6}],"products":[{"vendor":"fedoraproject","product":"fedora"},{"vendor":"python","product":"pillow"}],"references":[{"url":"https://pillow.readthedocs.io/en/stable/releasenotes/8.2.0.html#cve-2021-28678-fix-blp-dos","tags":["x_refsource_MISC","x_transferred","Release Notes","Vendor Advisory","advisory","web","report"]},{"url":"https://github.com/python-pillow/Pillow/pull/5377","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","advisory","fix","web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/MQHA5HAIBOYI3R6HDWCLAGFTIQP767FL/","tags":["vendor-advisory","x_refsource_FEDORA","x_transferred","web"]},{"url":"https://security.gentoo.org/glsa/202107-33","tags":["vendor-advisory","x_refsource_GENTOO","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-28678","tags":["web","advisory"]},{"url":"https://github.com/python-pillow/Pillow/pull/5377/commits/496245aa4365d0827390bd0b6fbd11287453b3a1","tags":["web"]},{"url":"https://github.com/advisories/GHSA-hjfx-8p6c-g7gx","tags":["advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/pillow/PYSEC-2021-94.yaml","tags":["web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/MQHA5HAIBOYI3R6HDWCLAGFTIQP767FL","tags":["web"]},{"url":"https://security.alpinelinux.org/vuln/CVE-2021-28678","tags":["advisory"]},{"url":"https://vulners.com/cve/CVE-2020-35653","tags":["report"]},{"url":"https://vulners.com/cve/CVE-2020-35655","tags":["report"]},{"url":"https://vulners.com/cve/CVE-2021-25287","tags":["report"]},{"url":"https://vulners.com/cve/CVE-2021-25288","tags":["report"]},{"url":"https://vulners.com/cve/CVE-2021-25290","tags":["report"]},{"url":"https://vulners.com/cve/CVE-2021-25292","tags":["report"]},{"url":"https://vulners.com/cve/CVE-2021-25293","tags":["report"]},{"url":"https://vulners.com/cve/CVE-2021-27921","tags":["report"]},{"url":"https://vulners.com/cve/CVE-2021-27922","tags":["report"]},{"url":"https://vulners.com/cve/CVE-2021-27923","tags":["report"]},{"url":"https://vulners.com/cve/CVE-2021-28675","tags":["report"]},{"url":"https://vulners.com/cve/CVE-2021-28676","tags":["report"]},{"url":"https://vulners.com/cve/CVE-2021-28677","tags":["report"]},{"url":"https://vulners.com/cve/CVE-2021-28678","tags":["report"]},{"url":"https://vulners.com/cve/CVE-2021-34552","tags":["report"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2021-28678","tags":["advisory"]},{"url":"https://github.com/python-pillow/Pillow","tags":["package"]},{"url":"https://advisories.mageia.org/MGASA-2021-0389.html","tags":["advisory"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=29002","tags":["report"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/MQHA5HAIBOYI3R6HDWCLAGFTIQP767FL/","tags":["web"]},{"url":"https://access.redhat.com/errata/RHSA-2021:4149","tags":["advisory"]},{"url":"https://access.redhat.com/security/updates/classification/#moderate","tags":["article"]},{"url":"https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.5_release_notes/","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1915420","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1915432","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1934685","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1934699","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1934705","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1935384","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1935396","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1935401","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1958226","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1958231","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1958240","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1958252","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1958257","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1958263","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1982378","tags":["report"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2021/rhsa-2021_4149.json","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2020-35653","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-35653","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-35653","tags":["advisory"]},{"url":"https://pillow.readthedocs.io/en/stable/releasenotes/8.1.0.html#security","tags":["article"]},{"url":"https://access.redhat.com/security/cve/CVE-2020-35655","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-35655","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-35655","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2021-25287","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-25287","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-25287","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2021-25288","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-25288","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-25288","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2021-25290","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-25290","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-25290","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2021-25292","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-25292","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-25292","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2021-25293","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-25293","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-25293","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2021-27921","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-27921","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-27921","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2021-27922","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-27922","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-27922","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2021-27923","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-27923","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-27923","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2021-28675","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-28675","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-28675","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2021-28676","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-28676","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-28676","tags":["advisory"]},{"url":"https://pillow.readthedocs.io/en/stable/releasenotes/8.2.0.html#security","tags":["article"]},{"url":"https://access.redhat.com/security/cve/CVE-2021-28677","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-28677","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-28677","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2021-28678","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-28678","tags":["advisory","report"]},{"url":"https://access.redhat.com/security/cve/CVE-2021-34552","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-34552","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-34552","tags":["advisory"]},{"url":"https://pillow.readthedocs.io/en/stable/releasenotes/8.3.0.html#buffer-overflow","tags":["article"]},{"url":"https://errata.rockylinux.org/RLSA-2021:4149","tags":["advisory"]},{"url":"https://www.suse.com/support/update/announcement/2021/suse-su-20211938-1/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1180832","tags":["report"]},{"url":"https://bugzilla.suse.com/1180834","tags":["report"]},{"url":"https://bugzilla.suse.com/1183101","tags":["report"]},{"url":"https://bugzilla.suse.com/1183102","tags":["report"]},{"url":"https://bugzilla.suse.com/1183105","tags":["report"]},{"url":"https://bugzilla.suse.com/1183107","tags":["report"]},{"url":"https://bugzilla.suse.com/1183108","tags":["report"]},{"url":"https://bugzilla.suse.com/1183110","tags":["report"]},{"url":"https://bugzilla.suse.com/1185784","tags":["report"]},{"url":"https://bugzilla.suse.com/1185785","tags":["report"]},{"url":"https://bugzilla.suse.com/1185786","tags":["report"]},{"url":"https://bugzilla.suse.com/1185803","tags":["report"]},{"url":"https://bugzilla.suse.com/1185804","tags":["report"]},{"url":"https://bugzilla.suse.com/1185805","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2020-35653","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-35655","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-25287","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-25288","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-25290","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-25292","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-25293","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-27921","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-27922","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-27923","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-28675","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-28676","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-28677","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-28678","tags":["web"]},{"url":"https://www.suse.com/support/update/announcement/2024/suse-su-20241607-1/","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2021-28678","tags":["report"]},{"url":"https://ubuntu.com/security/notices/USN-4963-1","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2021-25287","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2021-25288","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2021-28675","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2021-28676","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2021-28677","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2021-28678","description":"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.","status":"published","published":"2021-06-02T15:16:23Z","modified":"2024-08-03T21:47:33.136Z","updated_at":"2026-11-02T14:33:08.811269Z"}],"euvd":[{"id":"EUVD-2021-0185","description":"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.","status":"published","published":"2021-06-02T15:16:23Z","modified":"2024-08-03T21:47:33Z","updated_at":"2026-11-03T03:24:46.751124Z"}],"ghsa":[{"id":"GHSA-hjfx-8p6c-g7gx","title":"Insufficient Verification of Data Authenticity in Pillow","description":"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.","status":"published","published":"2021-06-08T18:49:20Z","modified":"2024-10-14T21:36:43Z","cvss":[{"version":"4.0","score":6.8,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"medium"},{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium"}],"cwes":["CWE-345"],"updated_at":"2026-11-02T14:38:10.696798Z"}],"nvd":[{"id":"CVE-2021-28678","description":"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.","status":"published","published":"2021-06-02T16:15:08.86Z","modified":"2026-06-17T03:46:46.847Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium","assessor":"primary"},{"version":"2.0","score":4.3,"vector":"AV:N/AC:M/Au:N/C:N/I:N/A:P","level":"medium","assessor":"primary"}],"cwes":["CWE-345"],"updated_at":"2026-11-02T14:06:53.987491Z"}],"osv":[{"id":"ALPINE-CVE-2021-28678","description":"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.","status":"published","published":"2021-06-02T16:15:08.86Z","modified":"2026-11-03T06:32:27.957402814Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-03T07:17:41.158523Z"},{"id":"CVE-2021-28678","description":"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.","status":"published","published":"2021-06-02T16:15:08.86Z","modified":"2026-10-20T10:54:36.220333269Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:44:19.129331Z"},{"id":"DEBIAN-CVE-2021-28678","description":"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.","status":"published","published":"2021-06-02T16:15:08.86Z","modified":"2026-10-23T18:03:12.057826671Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:45:34.94143Z"},{"id":"GHSA-hjfx-8p6c-g7gx","title":"Insufficient Verification of Data Authenticity in Pillow","description":"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.","status":"published","published":"2021-06-08T18:49:20Z","modified":"2024-10-14T21:48:01.061332Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium"},{"version":"4.0","score":6.8,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N","level":"medium"}],"cwes":["CWE-345"],"updated_at":"2026-11-02T15:46:49.28217Z"},{"id":"RHSA-2021:4149","title":"Red Hat Security Advisory: python-pillow security update","status":"published","published":"2024-09-14T01:23:59Z","modified":"2026-06-29T10:37:53Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H","level":"critical"}],"updated_at":"2026-11-02T15:53:08.619234Z"},{"id":"RLSA-2021:4149","title":"Moderate: python-pillow security update","description":"The python-pillow packages contain a Python image processing library that provides extensive file format support, an efficient internal representation, and powerful image-processing capabilities.\n\nSecurity Fix(es):\n\n* python-pillow: Out-of-bounds read in J2K image reader (CVE-2021-25287)\n\n* python-pillow: Out-of-bounds read in J2K image reader (CVE-2021-25288)\n\n* python-pillow: Negative-offset memcpy in TIFF image reader (CVE-2021-25290)\n\n* python-pillow: Regular expression DoS in PDF format parser (CVE-2021-25292)\n\n* python-pillow: Out-of-bounds read in SGI RLE image reader (CVE-2021-25293)\n\n* python-pillow: Excessive memory allocation in BLP image reader (CVE-2021-27921)\n\n* python-pillow: Excessive memory allocation in ICNS image reader (CVE-2021-27922)\n\n* python-pillow: Excessive memory allocation in ICO image reader (CVE-2021-27923)\n\n* python-pillow: Excessive memory allocation in PSD image reader (CVE-2021-28675)\n\n* python-pillow: Infinite loop in FLI image reader (CVE-2021-28676)\n\n* python-pillow: Excessive CPU use in EPS image reader (CVE-2021-28677)\n\n* python-pillow: Excessive looping in BLP image reader (CVE-2021-28678)\n\n* python-pillow: Buffer overflow in image convert function (CVE-2021-34552)\n\n* python-pillow: Buffer over-read in PCX image reader (CVE-2020-35653)\n\n* python-pillow: Buffer over-read in SGI RLE image reader (CVE-2020-35655)\n\nFor more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.\n\nAdditional Changes:\n\nFor detailed information on changes in this release, see the Rocky Linux 8.5 Release Notes linked from the References section.","status":"published","published":"2021-11-09T08:24:34Z","modified":"2026-02-04T18:00:05.269336Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H","level":"critical"}],"updated_at":"2026-11-02T15:53:23.969672Z"},{"id":"UBUNTU-CVE-2021-28678","description":"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.","status":"published","published":"2021-05-10T00:00:00Z","modified":"2026-04-02T18:31:53.119998Z","cvss":[{"version":"3.1","score":5.5,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:54:26.779273Z"},{"id":"ALSA-2021:4149","title":"Moderate: python-pillow security update","description":"The python-pillow packages contain a Python image processing library that provides extensive file format support, an efficient internal representation, and powerful image-processing capabilities.\n\nSecurity Fix(es):\n\n* python-pillow: Out-of-bounds read in J2K image reader (CVE-2021-25287)\n\n* python-pillow: Out-of-bounds read in J2K image reader (CVE-2021-25288)\n\n* python-pillow: Negative-offset memcpy in TIFF image reader (CVE-2021-25290)\n\n* python-pillow: Regular expression DoS in PDF format parser (CVE-2021-25292)\n\n* python-pillow: Out-of-bounds read in SGI RLE image reader (CVE-2021-25293)\n\n* python-pillow: Excessive memory allocation in BLP image reader (CVE-2021-27921)\n\n* python-pillow: Excessive memory allocation in ICNS image reader (CVE-2021-27922)\n\n* python-pillow: Excessive memory allocation in ICO image reader (CVE-2021-27923)\n\n* python-pillow: Excessive memory allocation in PSD image reader (CVE-2021-28675)\n\n* python-pillow: Infinite loop in FLI image reader (CVE-2021-28676)\n\n* python-pillow: Excessive CPU use in EPS image reader (CVE-2021-28677)\n\n* python-pillow: Excessive looping in BLP image reader (CVE-2021-28678)\n\n* python-pillow: Buffer overflow in image convert function (CVE-2021-34552)\n\n* python-pillow: Buffer over-read in PCX image reader (CVE-2020-35653)\n\n* python-pillow: Buffer over-read in SGI RLE image reader (CVE-2020-35655)\n\nFor more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.\n\nAdditional Changes:\n\nFor detailed information on changes in this release, see the AlmaLinux Release Notes linked from the References section.","status":"published","published":"2021-11-09T08:24:34Z","modified":"2026-10-29T11:00:45.544639132Z","updated_at":"2026-11-02T15:27:51.196609Z"},{"id":"BIT-pillow-2021-28678","description":"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.","status":"published","published":"2024-03-06T11:03:14.703Z","modified":"2026-09-08T08:48:18.537435447Z","updated_at":"2026-11-02T15:28:34.724063Z"},{"id":"MGASA-2021-0389","title":"Updated python-pillow packages fix security vulnerabilities","description":"Updated python-pillow packages fix security vulnerabilities:\n\nAn issue was discovered in Pillow before 8.2.0. There is an out-of-bounds\nread in J2kDecode, in j2ku_graya_la (CVE-2021-25287).\n\nAn issue was discovered in Pillow before 8.2.0. There is an out-of-bounds\nread in J2kDecode, in j2ku_gray_i (CVE-2021-25288).\n\nAn issue was discovered in Pillow before 8.2.0. PSDImagePlugin.PsdImageFile\nlacked a sanity check on the number of input layers relative to the size of\nthe data block. This could lead to a DoS on Image.open prior to Image.load\n(CVE-2021-28675).\n\nAn issue was discovered in Pillow before 8.2.0. For FLI data, FliDecode did\nnot properly check that the block advance was non-zero, potentially leading\nto an infinite loop on load (CVE-2021-28676).\n\nAn issue was discovered in Pillow before 8.2.0. For EPS data, the readline\nimplementation used in EPSImageFile has to deal with any combination of \\r\nand \\n as line endings. It used an accidentally quadratic method of\naccumulating lines while looking for a line ending. A malicious EPS file\ncould use this to perform a DoS of Pillow in the open phase, before an\nimage was accepted for opening (CVE-2021-28677).\n\nAn issue was discovered in Pillow before 8.2.0. For BLP data, BlpImagePlugin\ndid not properly check that reads (after jumping to file offsets) returned\ndata. This could lead to a DoS where the decoder could be run a large number\nof times on empty data (CVE-2021-28678).\n\nPillow through 8.2.0 and PIL (aka Python Imaging Library) through 1.1.7\nallow an attacker to pass controlled parameters directly into a convert\nfunction to trigger a buffer overflow in Convert.c (CVE-2021-34552).\n","status":"published","published":"2021-08-06T09:33:48Z","modified":"2026-04-16T04:44:17.485213954Z","updated_at":"2026-11-02T15:49:41.849028Z"},{"id":"PYSEC-2021-94","description":"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.","status":"published","published":"2021-06-02T16:15:00Z","modified":"2023-12-06T01:01:01.984751Z","updated_at":"2026-11-02T15:52:53.449407Z"},{"id":"SUSE-SU-2021:1938-1","title":"Security update for python-Pillow","description":"This update for python-Pillow fixes the following issues:\n\n- CVE-2020-35655: Fixed a buffer over-read when decoding crafted SGI RLE image files (bsc#1180832).\n- CVE-2021-25293: Fixed an out-of-bounds read in SGIRleDecode.c (bsc#1183102).\n- CVE-2021-25290: Fixed a negative-offset memcpy with an invalid size in TiffDecode.c (bsc#1183105).\n- CVE-2021-25292: Fixed a backtracking regex in PDF parser could be used as a DOS attack (bsc#1183101).\n- CVE-2021-27921,CVE-2021-27922,CVE-2021-27923: Fixed improper reported size of a contained image (bsc#1183110,bsc#1183108,bsc#1183107)\n- CVE-2020-35653: Fixed buffer over-read in PcxDecode when decoding a crafted PCX file (bsc#1180834).\n- CVE-2021-25287: Fixed out-of-bounds read in J2kDecode in j2ku_graya_la (bsc#1185805).\n- CVE-2021-25288: Fixed out-of-bounds read in J2kDecode in j2ku_gray_i (bsc#1185803).\n- CVE-2021-28675: Fixed DoS in PsdImagePlugin (bsc#1185804).\n- CVE-2021-28678: Fixed improper check in BlpImagePlugin (bsc#1185784).\n- CVE-2021-28677: Fixed DoS in the open phase via a malicious EPS file (bsc#1185785).\n- CVE-2021-28676: Fixed infinite loop in FliDecode.c (bsc#1185786).\n","status":"published","published":"2021-06-10T08:49:07Z","modified":"2026-02-04T03:20:42.915464Z","updated_at":"2026-11-02T15:53:49.138643Z"},{"id":"SUSE-SU-2024:1607-1","title":"Security update for python-Pillow","description":"This update for python-Pillow fixes the following issues:\n\n- CVE-2021-25287: out-of-bounds read in J2kDecode in j2ku_graya_la (bsc#1185805)\n- CVE-2021-25288: out-of-bounds read in J2kDecode in j2ku_gray_i (bsc#1185803)\n- CVE-2021-28675: DoS in PsdImagePlugin (bsc#1185804)\n- CVE-2021-28676: infinite loop in FliDecode.c can lead to DoS (bsc#1185786)\n- CVE-2021-28677: DoS in the open phase via a malicious EPS file (bsc#1185785)\n- CVE-2021-28678: improper check in BlpImagePlugin can lead to DoS (bsc#1185784)\n","status":"published","published":"2024-05-10T16:35:22Z","modified":"2026-02-04T04:18:20.401318Z","updated_at":"2026-11-02T15:53:54.652421Z"},{"id":"USN-4963-1","title":"pillow vulnerabilities","description":"It was discovered that Pillow incorrectly handled certain image files. If a\nuser or automated system were tricked into opening a specially-crafted\nfile, a remote attacker could cause Pillow to crash or hand, resulting in a\ndenial of service.\n","status":"published","published":"2021-05-19T13:54:25Z","modified":"2026-04-27T15:49:03.026482Z","updated_at":"2026-11-02T16:58:15.159055Z"}]}}
