Una Vulnerabilidad en sistemas Linux permite salirse de contenedores Kubernetes

Published:

Se ha detectado una nueva Vulnerabilidad en el kernel de Linux, que ha sido identificada como CVE-2022-0185la cual podría ser utilizada en entornos como Kubernetes para escapar de los contenedores y tomar el control del nodo. Un dato no menor es que para que dicha explotación del fallo sea efectiva, se requiere que el contenedor tenga habilitado el permiso CAP_SYS_ADMINel cual permite realizar acciones como montar unidades o establecer cuotas en el contenedor.

La vulnerabilidad consiste en un desbordamiento de enteros (‘integer underflow’) en el componente del contexto del sistema de archivos, por el cual puede reducirse el valor por debajo de cero y en vez de tomar un valor negativo, alcanzar el valor máximo del entero. El fallo puede aprovecharse para escribir fuera de la memoria asignada y así cambiar otros valores del espacio.

Lo bueno, dentro de lo malo, es que tecnologías como Docker no son vulnerables a este fallo gracias a que seccomp está habilitado de serie. Esta característica del kernel se utiliza para restringir las acciones habilitadas en el contenedor, impidiendo la explotación de la vulnerabilidad.

Esta restricción puede ser comprobada intentando ejecutar ‘unshare’ en la instancia, pudiendo ver como error que la operación no está permitida. Los operadores de Kubernetes en teoría también podrían habilitar seccomp por defecto, aunque esta es todavía una característica en pruebas.

La vulnerabilidad no afecta a la versión 5.16.2 de Linux, la cual ya esta disponible en la mayoría de distribuciones como RedhatDebian o UbuntuEl fallo sólo se encuentra presente a partir de la versión 5.1 del kernel, por lo que versiones anteriores no necesitan corregir la incidencia. Otra posibilidad es desactivar los «user namespaces» sin privilegios, para lo cual puede utilizarse: ‘sysctl -w kernel.unprivileged_userns_clone = 0’.

De momento no se tiene constancia de su explotación por atacantes, aunque ya hay disponibles algunas pruebas de concepto (‘Proof of Concept’ o PoC) y ya hay otros usuarios que la están probandoEl mismo usuario de Twitter ha publicado un repositorio donde promete subir próximamente sus resultados.

Es por eso que te recomendamos actualizar lo antes posible en caso de tener contenedores que hagan uso del permiso ‘CAP_SYS_ADMIN’. Además por supuesto de estar al día con los updates mensuales.

- Advertisement -
Jorge
Jorgehttps://nksistemas.com
Soy Jorge, Sr Sysadmin Linux/DevOps/SRE y creador de NKSistemas.com Trabajo con plataformas: Linux, Windows, AWS, GCP, VMware, Helm, kubernetes, Docker, etc.

Related articles