// For flags

CVE-2020-15157

containerd can be coerced into leaking credentials during image pull

Severity Score

6.1
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

-
*SSVC
Descriptions

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.

En containerd (un tiempo de ejecución de contenedor estándar de la industria) anterior a la versión 1.2.14, Se presenta una vulnerabilidad de filtrado de credenciales. Si un manifiesto de imagen de contenedor en el formato OCI Image o el formato Docker Image V2 Schema 2 incluye una URL para la ubicación de una capa de imagen específica (también se conoce como “foreign layer”), el solucionador de containerd predeterminado seguirá esa URL para intentar descargarla. En la versión v1.2.x pero no en 1.3.0 o posterior, el solucionador de containerd predeterminado proporcionará sus credenciales de autenticación si el servidor donde se encuentra la URL presenta un código de estado HTTP 401 junto con encabezados HTTP específicos del registro. Si un atacante publica una imagen pública con un manifiesto que indica que una de las capas se extraiga de un servidor web que controlan y engaña a un usuario o sistema para que extraiga la imagen, pueden obtener las credenciales usadas para extraer esa imagen. En algunos casos, puede ser el nombre de usuario y la contraseña del usuario para el registro. En otros casos, estas pueden ser las credenciales adjuntas a la instancia virtual en nube que pueden otorgar acceso a otros recursos en nube en la cuenta. El solucionador de containerd predeterminado es usado por el plugin cri-containerd (que puede ser usado por Kubernetes), la herramienta de desarrollo ctr y otros programas cliente que se han vinculado explícitamente con él. Esta vulnerabilidad ha sido corregida en containerd versión 1.2.14. containerd versión 1.3 y posteriores no están afectados. Si está utilizando containerd versión 1.3 o posterior, no estará afectado. Si está utilizando cri-containerd en la serie 1.2 o anterior, debe asegurarse de obtener solo imágenes de fuentes confiables. Otros tiempos de ejecución de contenedores construidos por encima de containerd pero que no usan el solucionador predeterminado (tal y como Docker) no están afectados

A flaw was found in containerd. Credentials may be leaked during an image pull.

*Credits: N/A
CVSS Scores
Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
None
Availability
None
Attack Vector
Network
Attack Complexity
High
Authentication
None
Confidentiality
Partial
Integrity
None
Availability
None
* Common Vulnerability Scoring System
SSVC
  • Decision:-
Exploitation
-
Automatable
-
Tech. Impact
-
* Organization's Worst-case Scenario
Timeline
  • 2020-06-25 CVE Reserved
  • 2020-10-16 CVE Published
  • 2024-08-04 CVE Updated
  • 2024-08-20 EPSS Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-200: Exposure of Sensitive Information to an Unauthorized Actor
  • CWE-522: Insufficiently Protected Credentials
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Linuxfoundation
Search vendor "Linuxfoundation"
Containerd
Search vendor "Linuxfoundation" for product "Containerd"
>= 1.2.0 < 1.2.14
Search vendor "Linuxfoundation" for product "Containerd" and version " >= 1.2.0 < 1.2.14"
-
Affected
Linuxfoundation
Search vendor "Linuxfoundation"
Containerd
Search vendor "Linuxfoundation" for product "Containerd"
1.3.0
Search vendor "Linuxfoundation" for product "Containerd" and version "1.3.0"
-
Affected
Linuxfoundation
Search vendor "Linuxfoundation"
Containerd
Search vendor "Linuxfoundation" for product "Containerd"
1.3.0
Search vendor "Linuxfoundation" for product "Containerd" and version "1.3.0"
beta0
Affected
Linuxfoundation
Search vendor "Linuxfoundation"
Containerd
Search vendor "Linuxfoundation" for product "Containerd"
1.3.0
Search vendor "Linuxfoundation" for product "Containerd" and version "1.3.0"
beta1
Affected
Linuxfoundation
Search vendor "Linuxfoundation"
Containerd
Search vendor "Linuxfoundation" for product "Containerd"
1.3.0
Search vendor "Linuxfoundation" for product "Containerd" and version "1.3.0"
beta2
Affected
Linuxfoundation
Search vendor "Linuxfoundation"
Containerd
Search vendor "Linuxfoundation" for product "Containerd"
1.3.0
Search vendor "Linuxfoundation" for product "Containerd" and version "1.3.0"
rc0
Affected
Linuxfoundation
Search vendor "Linuxfoundation"
Containerd
Search vendor "Linuxfoundation" for product "Containerd"
1.3.0
Search vendor "Linuxfoundation" for product "Containerd" and version "1.3.0"
rc1
Affected
Linuxfoundation
Search vendor "Linuxfoundation"
Containerd
Search vendor "Linuxfoundation" for product "Containerd"
1.3.0
Search vendor "Linuxfoundation" for product "Containerd" and version "1.3.0"
rc2
Affected
Linuxfoundation
Search vendor "Linuxfoundation"
Containerd
Search vendor "Linuxfoundation" for product "Containerd"
1.3.0
Search vendor "Linuxfoundation" for product "Containerd" and version "1.3.0"
rc3
Affected
Canonical
Search vendor "Canonical"
Ubuntu Linux
Search vendor "Canonical" for product "Ubuntu Linux"
16.04
Search vendor "Canonical" for product "Ubuntu Linux" and version "16.04"
lts
Affected
Canonical
Search vendor "Canonical"
Ubuntu Linux
Search vendor "Canonical" for product "Ubuntu Linux"
18.04
Search vendor "Canonical" for product "Ubuntu Linux" and version "18.04"
lts
Affected
Canonical
Search vendor "Canonical"
Ubuntu Linux
Search vendor "Canonical" for product "Ubuntu Linux"
20.04
Search vendor "Canonical" for product "Ubuntu Linux" and version "20.04"
lts
Affected
Debian
Search vendor "Debian"
Debian Linux
Search vendor "Debian" for product "Debian Linux"
10.0
Search vendor "Debian" for product "Debian Linux" and version "10.0"
-
Affected