Skip to content
OpenAdvisories
Medium · 6.1 CVE-2020-15157 EUVD-2022-0879GHSA-742w-89gc-8m9cGO-2022-0803

containerd can be coerced into leaking credentials during image pull

Published Oct 16, 2020 · Updated Aug 4, 2024 · Assigned by GitHub_M

Description

In containerd (an industry-standard container runtime) before version 1.2.14 there is a credential leaking vulnerability. If a container image manifest in the OCI Image format or Docker Image V2 Schema 2 format includes a URL for the location of a specific image layer (otherwise known as a “foreign layer”), the default containerd resolver will follow that URL to attempt to download it. In v1.2.x but not 1.3.0 or later, the default containerd resolver will provide its authentication credentials if the server where the URL is located presents an HTTP 401 status code along with registry-specific HTTP headers. If an attacker publishes a public image with a manifest that directs one of the layers to be fetched from a web server they control and they trick a user or system into pulling the image, they can obtain the credentials used for pulling that image. In some cases, this may be the user's username and password for the registry. In other cases, this may be the credentials attached to the cloud virtual instance which can grant access to other cloud resources in the account. The default containerd resolver is used by the cri-containerd plugin (which can be used by Kubernetes), the ctr development tool, and other client programs that have explicitly linked against it. This vulnerability has been fixed in containerd 1.2.14. containerd 1.3 and later are not affected. If you are using containerd 1.3 or later, you are not affected. If you are using cri-containerd in the 1.2 series or prior, you should ensure you only pull images from trusted sources. Other container runtimes built on top of containerd but not using the default resolver (such as Docker) are not affected.

Affected products

VendorProductAffectedFixed
containerd containerd < 1.2.14 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 containerd 1.3.2~ds1-2 —
Debian 14 docker.io 19.03.13+dfsg2-1 —
Debian 13 containerd 1.3.2~ds1-2 —
Debian 13 docker.io 19.03.13+dfsg2-1 —
Debian 12 containerd 1.3.2~ds1-2 —
Debian 12 docker.io 19.03.13+dfsg2-1 —
Debian 10 docker.io 18.09.1+dfsg1-7.1+deb10u3 DSA-4865-1
ReleasePackageFixed inAdvisory
Ubuntu 20.04 LTS docker.io 19.03.8-0ubuntu1.20.04.1 USN-4589-2
Ubuntu 18.04 LTS docker.io 19.03.6-0ubuntu1~18.04.2 USN-4589-2
Ubuntu 16.04 LTS containerd 1.2.6-0ubuntu1~16.04.4 USN-4589-1
Ubuntu 16.04 LTS docker.io 18.09.7-0ubuntu1~16.04.6 USN-4589-2
ReleasePackageFixed inAdvisory
Red Hat OpenShift 4 cri-o 1.20.0-0.rhaos4.7.git8921e00.el7.51 RHSA-2020:5634
Red Hat OpenShift 4 cri-tools 1.18.0-3.el7 RHSA-2020:5634
Red Hat OpenShift 4 ignition +1 2.9.0-2.rhaos4.7.git1d56dc8.el8 RHSA-2020:5634
Red Hat OpenShift 4 openshift +1 4.7.0-202102060108.p0.git.97095.7271b90.el7 RHSA-2020:5634
Red Hat OpenShift 4 python-rsa +1 4.7-1.el8 RHSA-2020:5634
ReleasePackageFixed inAdvisory
SLES 15 SP3 conmon 2.0.30-150300.8.3.1 SUSE-SU-2022:23018-1
SLES 15 SP3 libcontainers-common 20210626-150300.8.3.1 SUSE-SU-2022:23018-1
SLES 15 SP3 libseccomp 2.5.3-150300.10.5.1 SUSE-SU-2022:23018-1
SLES 15 SP3 podman 3.4.4-150300.9.3.2 SUSE-SU-2022:23018-1
SLES 15 SP2 libcontainers-common 20210626-150100.3.15.1 SUSE-SU-2022:3312-1
SLES 15 SP1 libcontainers-common 20210626-150100.3.15.1 SUSE-SU-2022:3312-1
SLES 12 containerd 1.3.9-16.35.1 SUSE-SU-2021:0445-1
SLES 12 docker 19.03.15_ce-98.60.2 SUSE-SU-2021:0445-1
SLES 12 docker-runc 1.0.0rc10+gitr3981_dc9208a3303f-1.52.1 SUSE-SU-2021:0445-1
SLES 12 golang-github-docker-libnetwork 0.7.0.1+gitr2908_55e924b8a842-37.1 SUSE-SU-2021:0445-1
Show 10 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 15 SP2 libcontainers-common 20210626-150100.3.15.1 SUSE-SU-2022:3312-1
SLES for SAP 15 SP1 libcontainers-common 20210626-150100.3.15.1 SUSE-SU-2022:3312-1
SLE Micro 5.1 conmon 2.0.30-150300.8.3.1 SUSE-SU-2022:23018-1
SLE Micro 5.1 libcontainers-common 20210626-150300.8.3.1 SUSE-SU-2022:23018-1
SLE Micro 5.1 libseccomp 2.5.3-150300.10.5.1 SUSE-SU-2022:23018-1
SLE Micro 5.1 podman 3.4.4-150300.9.3.2 SUSE-SU-2022:23018-1
SLE HPC 15 SP2 libcontainers-common 20210626-150100.3.15.1 SUSE-SU-2022:3312-1
SLE HPC 15 SP1 libcontainers-common 20210626-150100.3.15.1 SUSE-SU-2022:3312-1
SUSE Manager Server 4.1 libcontainers-common 20210626-150100.3.15.1 SUSE-SU-2022:3312-1
SUSE Manager Retail Branch Server 4.1 libcontainers-common 20210626-150100.3.15.1 SUSE-SU-2022:3312-1
SUSE Manager Proxy 4.1 libcontainers-common 20210626-150100.3.15.1 SUSE-SU-2022:3312-1
SUSE Enterprise Storage 7 libcontainers-common 20210626-150100.3.15.1 SUSE-SU-2022:3312-1
SUSE Enterprise Storage 6 libcontainers-common 20210626-150100.3.15.1 SUSE-SU-2022:3312-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed containerd 1.4.8-2.2 openSUSE-SU-2024:10693-1
openSUSE Tumbleweed libcontainers-common 20210626-7.1 openSUSE-SU-2024:11757-1
openSUSE Leap 15.3 conmon 2.0.30-150300.8.3.1 openSUSE-SU-2022:23018-1
openSUSE Leap 15.3 libcontainers-common 20210626-150300.8.3.1 openSUSE-SU-2022:23018-1
openSUSE Leap 15.3 libseccomp 2.5.3-150300.10.5.1 openSUSE-SU-2022:23018-1
openSUSE Leap 15.3 podman 3.4.4-150300.9.3.2 openSUSE-SU-2022:23018-1

Oracle Linux

ReleasePackageFixed inAdvisory
Oracle Linux 7 containerd 1.2.14-1.0.1.el7 ELSA-2020-5906
Oracle Linux 7 docker-cli +1 19.03.11.ol-6.el7 ELSA-2020-5900

Affected packages

EcosystemPackageAffectedFixedRecord
Go github.com/containerd/containerd < 1.2.14 1.2.14 GHSA-742w-89gc-8m9c

Advisories 13

References