CVE-2021-20291 json
Improper Locking in github.com/containers/storage
published 2021-04-01 5 y ago modified 2026-06-17 4 mo ago also GHSA-7qw8-847f-pggm , GO-2021-0100 , EUVD-2021-1004
- cvss
- 6.5
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.6%
- EPSS 1.6% chance of exploitation in 30 days, percentile 75%
- public exploits
- 0
- none known
Summary
A deadlock vulnerability was found in 'github.com/containers/storage' in versions before 1.28.1. When a container image is processed, each layer is unpacked using `tar`. If one of those layers is not a valid `tar` archive this causes an error leading to an unexpected situation where the code indefinitely waits for the tar unpacked stream, which never finishes. An attacker could use this vulnerability to craft a malicious image, which when downloaded and stored by an application using containers/storage, would then cause a deadlock leading to a Denial of Service (DoS).
Patch / fix
- go github.com/containers/storage 1.28.1
- storage_project storage 1.28.1
- golang-github-containers-storage Debian 14, Debian 13, Debian 12 1.34.1+ds1-1
debian advisories DEBIAN-CVE-2021-20291
- crit RHEL 8 3.15-1.module+el8.5.0+10306+3f72d66d
- criu RHEL 8 3.15-1.module+el8.5.0+10306+3f72d66d
- crun RHEL 8 0.18-2.module+el8.5.0+10306+3f72d66d
- runc RHEL 8 1.0.0-72.rc92.module+el8.5.0+12236+c988d830
- udica RHEL 8 0.2.4-1.module+el8.5.0+10306+3f72d66d
- conmon RHEL 8 2:2.0.26-1.module+el8.5.0+10306+3f72d66d
- podman RHEL 8 3.0.1-7.module+el8.5.0+12960+5b7d72b5
- skopeo RHEL 8 1:1.2.4-1.module+el8.5.0+13605+73abf821
red hat advisories RHBA-2022:0348RHSA-2021:4154RHSA-2022:8008RHSA-2022:7954RHSA-2022:7955RHSA-2021:1150
- libcontainers-common SLES for SAP 15 SP2, SLES for SAP 15 SP1, SLES 15 SP2-LTSS +12 more 20210626-150100.3.15.1
- podman SLE Module for Containers 15 SP3, SLE Micro 5.1 3.4.4-150300.9.3.2
- conmon SLE Module for Containers 15 SP3, SLE Micro 5.1 2.0.30-150300.8.3.1
- libseccomp SLE Module for Basesystem 15 SP3, SLE Micro 5.1 2.5.3-150300.10.5.1
- libcontainers-common SLE Module for Basesystem 15 SP3, SLE Micro 5.1 20210626-150300.8.3.1
suse advisories SUSE-SU-2022:3312-1SUSE-SU-2022:23018-1
- libcontainers-common openSUSE Tumbleweed 20210626-7.1
- podman openSUSE Leap 15.3 3.4.4-150300.9.3.2
- conmon openSUSE Leap 15.3 2.0.30-150300.8.3.1
- libseccomp openSUSE Leap 15.3 2.5.3-150300.10.5.1
- libcontainers-common openSUSE Leap 15.3 20210626-150300.8.3.1
opensuse advisories openSUSE-SU-2024:11757-1openSUSE-SU-2022:23018-1
- podman AlmaLinux 9 2:4.2.0-3.el9
- podman-tests AlmaLinux 9 2:4.2.0-3.el9
- podman-docker AlmaLinux 9 2:4.2.0-3.el9
- podman-remote AlmaLinux 9 2:4.2.0-3.el9
- podman-gvproxy AlmaLinux 9 2:4.2.0-3.el9
- podman-plugins AlmaLinux 9 2:4.2.0-3.el9
- skopeo AlmaLinux 9 2:1.9.2-1.el9
- skopeo-tests AlmaLinux 9 2:1.9.2-1.el9
almalinux advisories ALSA-2022:7954ALSA-2022:7955ALSA-2022:8008ALBA-2022:0348ALSA-2021:4154
- criu Rocky Linux 8 3.15-3.module+el8.7.0+1077+0e4f03d4
- criu Rocky Linux 8 3.15-3.module+el8.5.0+710+4c471e88
- criu Rocky Linux 8 3.15-3.module+el8.6.0+1054+50b00ff4
- crun Rocky Linux 8 1.0-1.module+el8.5.0+710+4c471e88
- runc Rocky Linux 8 1.0.2-1.module+el8.5.0+710+4c471e88
- udica Rocky Linux 8 0.2.5-2.module+el8.5.0+710+4c471e88
- conmon Rocky Linux 8 2:2.0.29-1.module+el8.4.0+643+525e162a
- conmon Rocky Linux 8 2:2.0.29-1.module+el8.5.0+710+4c471e88
rocky linux advisories RLSA-2021:4154
- github.com/containers/storage@306fcab commit
- github.com/containers/storage#860 pull request
- bugzilla.redhat.com/show_bug.cgi?id=1939485 advisory
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-20291 updated cvss 6.5
containers/storage: DoS via malicious image
-
Red Hat Enterprise Linux 7 podman, skopeo, buildahaffected: no fix planned “Out of support scope”
-
Red Hat OpenStack Platform 16.2 osp-director-provisioner-container, rhosp-rhel8-tech-preview/osp-director-operator, rhosp-rhel8-tech-preview/osp-director-downloaderaffected: no fix planned “Will not fix”
-
Red Hat Enterprise Linux AppStream (v. 8) crun 1.0-1.module+el8.5.0+12582+56d94c81, crit 3.15-1.module+el8.5.0+10306+3f72d66d, crit 3.15-3.module+el8.5.0+12582+56d94c81, criu 3.15-1.module+el8.5.0+10306+3f72d66d, criu 3.15-3.module+el8.5.0+12582+56d94c81, crun 0.18-2.module+el8.5.0+10306+3f72d66d, +52 morefixed: vendor fix RHSA-2021:4154
-
Red Hat Enterprise Linux AppStream (v. 9) podman 4.2.0-3.el9, skopeo 1.9.2-1.el9, buildah 1.27.0-2.el9, podman-tests 4.2.0-3.el9, skopeo-tests 1.9.2-1.el9, podman-docker 4.2.0-3.el9, +4 morefixed: vendor fix RHSA-2022:8008
-
Red Hat OpenShift Container Platform 4.7 cri-o 1.20.2-6.rhaos4.7.gitf1d5201.el7, cri-o 1.20.2-6.rhaos4.7.gitf1d5201.el8, openshift 4.7.0-202104090228.p0.git.97111.77863f8.el7, openshift 4.7.0-202104090228.p0.git.97111.77863f8.el8, openshift-hyperkube 4.7.0-202104090228.p0.git.97111.77863f8.el7, openshift-hyperkube 4.7.0-202104090228.p0.git.97111.77863f8.el8fixed: vendor fix RHSA-2021:1150
-
Red Hat OpenShift Container Platform 4.8 podman 3.0.1-6.el8, haproxy 2.2.13-1.el7, haproxy 2.2.13-1.el8, ostree 2020.7-5.el8_4, cri-tools 1.21.0-2.el7, cri-tools 1.21.0-2.el8, +135 morefixed: vendor fix RHSA-2021:2437
-
Red Hat Cluster Application Migration openshift-migration-plugin-container Red Hat Enterprise Linux 8 podman, skopeo, buildah, podman-tests, skopeo-tests, buildah-tests, +7 more Red Hat OpenShift Container Platform 4 skopeo, buildah, skopeo-tests, buildah-tests, containers-common, openshift4/cnf-tests-rhel8, +6 more Red Hat OpenShift Container Platform 4.8 openshift4/ose-cli v4.8.0-202106291725.p0.git.1077b05.assembly.stream, openshift4/ose-pod v4.8.0-202107161820.p0.git.051ac4f.assembly.stream, openshift4/ose-etcd v4.8.0-202106152230.p0.git.aefa6bf.assembly.stream, openshift4/ose-tests v4.8.0-202107131424.p0.git.0d958c3.assembly.stream, openshift4/ose-console v4.8.0-202107010336.p0.git.188a490.assembly.stream, openshift4/ose-coredns v4.8.0-202106291913.p0.git.642b46e.assembly.stream, +135 more Red Hat OpenShift Virtualization 2 virt-cdi-importer-container, virt-cdi-uploadserver-container Red Hat Quay 3 quay/quay-builder-rhel8not affected: vulnerable code not present
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
1.59% chance of exploitation in the next 30 days, higher than 75% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- unit42.paloaltonetworks.com https://unit42.paloaltonetworks.com/cve-2021-20291/ referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H |
| NVD | 2.0 | 7.1 | AV:N/AC:M/Au:N/C:N/I:N/A:C |
| GitHub | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| go | github.com/containers/storage | <1.28.1 |
1.28.1 |
Affected products
- n/a containers/storage
Classification
References
-
bugzilla.redhat.com
/show_bug.cgi?id=1939485
web, issue-tracking, patch, third-party-advisory
-
github.com
/containers/storage/pull/860
web, patch
-
github.com
/containers/storage/commit/306fcabc964470e4b3b87a43a8f6b7d698209ee1
web, patch
-
unit42.paloaltonetworks.com
/cve-2021-20291/
exploit, third-party-advisory
-
lists.fedoraproject.org
/archives/list/package-announce%40lists.fedoraproject.org/message/R5D7XL7FL24TWFMGQ3K2S72EOUSLZMKL/
vendor-advisory
-
lists.fedoraproject.org
/archives/list/package-announce%40lists.fedoraproject.org/message/ZNMB7O2UIXE34PGSCSOULGHPX5LIJBMM/
vendor-advisory
-
lists.fedoraproject.org
/archives/list/package-announce%40lists.fedoraproject.org/message/WX24EITRXVHDM5M223BVTJA2ODF2FSHI/
vendor-advisory
-
lists.fedoraproject.org
/archives/list/package-announce%40lists.fedoraproject.org/message/SPYOHNG2Q7DCAQZMGYLMENLKALGDLG3X/
vendor-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2021-20291
advisory
-
github.com
/containers/storage
package
-
lists.fedoraproject.org
/archives/list/package-announce@lists.fedoraproject.org/message/R5D7XL7FL24TWFMGQ3K2S72EOUSLZMKL
web
-
lists.fedoraproject.org
/archives/list/package-announce@lists.fedoraproject.org/message/SPYOHNG2Q7DCAQZMGYLMENLKALGDLG3X
web
-
lists.fedoraproject.org
/archives/list/package-announce@lists.fedoraproject.org/message/WX24EITRXVHDM5M223BVTJA2ODF2FSHI
web
-
lists.fedoraproject.org
/archives/list/package-announce@lists.fedoraproject.org/message/ZNMB7O2UIXE34PGSCSOULGHPX5LIJBMM
web
-
pkg.go.dev
/vuln/GO-2021-0100
web
-
unit42.paloaltonetworks.com
/cve-2021-20291
web
Sources
- CVE List CVE-2021-20291
- GitHub Advisory GHSA-7qw8-847f-pggm
- NVD CVE-2021-20291
- OSV GO-2021-0100
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.