Incidente de seguridad sobre escape de contenedores en Kubernetes usando un kernel bug. Se ha descubierto una vulnerabilidad de alto riesgo de escape de contenedores en Kubernetes que permitiría a un usuario con un shell de contenedor escapar con privilegios completos del pod a la máquina host. Esta vulnerabilidad (CVE CVE-2022-0185), a nuestro conocimiento, no está siendo explotada a día de hoy 26 de Enero de 2022, pero el grupo que la ha descubierto publicará pruebas de concepto y detalles la siguiente semana, lo cual empezará a representar una amenaza para workloads en Kubernetes. Las distribuciones de Linux más extendidas ya están publicando kernel patches de mitigación.
Alcance
Esta vulnerabilidad es explotable desde un shell de linux ejecutándose en un contenedor de Kubernetes. No es un primer paso en la cadena de exploits, pero hace trivial un escalado de capabilities de kernel una vez en el container, lo cual implica un mayor riesgo en workloads en Kubernetes que tienden a tener software vulnerable (como los plugins de un CRM o CMS populares) permitiendo así continuar una cadena de exploits más peligrosa. Todas las versiones de Kernel desde 5.1-rc1 están afectadas hasta los últimos parches (5.4.173, 5.10.93, 5.15.1), pero las grandes distribuciones ya están publicando parches de mitigación a sus repositorios.
Indicadores de compromiso
Actualmente no se conocen indicadores de compromiso claros de esta vulnerabilidad, pero una posible pista es revisar los procesos ejecutándose en un sistema y ver si alguno tiene más capabilities de kernel de las que debería.
Parches y mitigaciones
Las grandes distribuciones de Linux (Debian, Ubuntu, CentOS) ya están publicando kernel patches que resuelven esta vulnerabilidad y deberían aplicarse a los nodos del cluster a la mayor brevedad posible. Si la distribución de los nodos basada en debian aún no tiene parche disponible, esta vulnerabilidad se puede mitigar desactivando los kernel namespaces no privilegiados:
sysctl -w kernel.unprivileged_userns_clone=0
Des esta manera los contenedores sólo podrán escalar privilegios de kernel si tienen el flag de Privileged (Esto es por diseño, working as intended).
Fuentes
https://sysdig.com/blog/cve-2022-0185-container-escape/
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-0185
Geko Cloud
Geko Cloud Consulting estamos al día de cualquier incidencia o vulnerabilidad. Si quieres tener tus datos seguros, nos necesitas!