Ejecución de código arbitraria en CRI-O
Una falta de validación de los datos de entrada permitiría a un atacante escapar de un contenedor de Kubernetes y ejecutar código arbitrario.
CRI-O es una implementación para Kubernetes del software que permite la creación y ejecución de
contenedores. Es una tecnología alternativa a docker que es utilizada para la gestión de los «pods».
La vulnerabilidad, conocida como «cr8escape» y con identificador CVE-2022-0811, permitiría a un atacante escapar de un contenedor de Kubernetes, elevar privilegios a root y pivotar a otro contenedor del cluster para ejecutar malware, exfiltrar información o realizar cualquier otra acción maliciosa.
El fallo se introdujo en la versión 1.19 de «pinns», una utilidad empleada para establecer opciones en el kernel de contenedor y que añadió soporte para «sysctl».
Un mal saneamiento de los datos de entrada de una de las funciones del código de «pinns» permitiría a un atacante cambiar la configuración del kernel inyectando opciones adicionales en los valores de «sysctl».
Como resultado, un atacante podría pasar valores de «sysctl» con caracteres ‘+‘ y ‘=‘ para configurar el kernel del «pod» con opciones arbitrarias.
En esta PoC publicada por CrowStrike podemos ver cómo puede inyectarse en la configuración un script malicioso:
Como puede observarse, de manera adicional a la opción de ‘kernel.shm_rmid_forced‘, se inyecta otra, ‘kernel.core_pattern‘, con un valor a la ruta de un script malicioso que será ejecutado al provocar un volcado de memoria en el contenedor.
A partir de aquí el atacante tendría el control del contenedor y podría escapar de éste, pivotar a otros contenedores o realizar otras acciones maliciosas.
Más información:
cr8escape: New Vulnerability in CRI-O Container Engine Discovered by CrowdStrike (CVE-2022-0811)
La entrada Ejecución de código arbitraria en CRI-O se publicó primero en Una al Día.
Powered by WPeMatico