Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en la API containerd-shim en containerd disponible como demonio para Linux y Windows (CVE-2020-15257)

Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-669 Transferencia incorrecta de recursos entre esferas
Fecha de publicación:
01/12/2020
Última modificación:
07/11/2023

Descripción

containerd es un tiempo de ejecución de contenedor estándar de la industria y está disponible como demonio para Linux y Windows. En containerd anterior a las versiones 1.3.9 y 1.4.3, la API containerd-shim está expuesta inapropiadamente a los contenedores de red del host. Los controles de acceso para el socket de la API de shim verificaron que el proceso de conexión tuviera un UID efectivo de 0, pero no restringieron de otra manera el acceso al socket de dominio Unix abstracto. Esto permitiría que los contenedores maliciosos se ejecuten en el mismo espacio de nombres de red que el shim, con un UID efectivo de 0 pero con privilegios reducidos, para causar que nuevos procesos se ejecuten con privilegios elevados. Esta vulnerabilidad se ha corregido en containerd versiones 1.3.9 y 1.4.3. Los usuarios deben actualizar a estas versiones tan pronto como se publiquen. Cabe señalar que los contenedores iniciados con una versión anterior de containerd-shim deben detenerse y reiniciarse, ya que los contenedores en ejecución seguirán siendo vulnerables inclusive después de una actualización. Si no proporciona la capacidad para que los usuarios que no son de confianza inicien contenedores en el mismo espacio de nombres de red que el shim (normalmente el espacio de nombres de red "host", por ejemplo, con docker run --net=host o hostNetwork: true en un pod de Kubernetes) y ejecutar con un UID efectivo de 0, no es vulnerable a este problema. Si está ejecutando contenedores con una configuración vulnerable, puede denegar el acceso a todos los sockets abstractos con AppArmor agregando una línea similar a denegar unix addr=@**, para su política. Es una buena práctica ejecutar contenedores con un conjunto reducido de privilegios, con un UID distinto de cero y con espacios de nombres aislados. Los encargados de mantenimiento de contenedores no aconsejan compartir espacios de nombres con el host. Reducir el conjunto de mecanismos de aislamiento usados para un contenedor necesariamente aumenta el privilegio de ese contenedor, independientemente del tiempo de ejecución del contenedor que se use para ejecutar ese contenedor

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:linuxfoundation:containerd:*:*:*:*:*:*:*:* 1.3.9 (excluyendo)
cpe:2.3:a:linuxfoundation:containerd:*:*:*:*:*:*:*:* 1.4.0 (incluyendo) 1.4.3 (excluyendo)
cpe:2.3:o:fedoraproject:fedora:33:*:*:*:*:*:*:*
cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*