Insufficiently protected credentials in containerd - CVE-2020-15157
Published: October 16, 2020 / Updated: December 1, 2020
Vulnerability details
The vulnerability allows a remote attacker to gain access to sensitive information.
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 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.
Affected software
Amazon Linux AMI
SUSE CaaS Platform
SUSE Manager Server
SUSE Manager Retail Branch Server
SUSE Manager Proxy
SUSE Enterprise Storage
Fedora
SUSE Linux Enterprise Server for SAP
SUSE Linux Enterprise Server
SUSE Linux Enterprise High Performance Computing
Ubuntu
docker.io (Debian package)
containerd (Ubuntu package)
containerd
docker.io (Ubuntu package)
libcontainers-common
How to mitigate CVE-2020-15157
docker.io (Debian package) - update to 18.09.1+dfsg1-7.1+deb10u3
containerd (Ubuntu package) - update to 1.2.6-0ubuntu1~16.04.4
containerd - update to 1.2.14-1.el7
docker.io (Ubuntu package) - addressed in versions 18.09.7-0ubuntu1~16.04.6, 19.03.6-0ubuntu1~18.04.2, 19.03.8-0ubuntu1.20.04.1
libcontainers-common - update to 20210626-150100.3.15.1