Nueva vulnerabilidad crítica en Kubernetes permite ejecución remota de código con privilegios SYSTEM
Nueva vulnerabilidad crítica en Kubernetes permite ejecución remota de código con privilegios SYSTEM

Nueva vulnerabilidad crítica en Kubernetes permite ejecución remota de código con privilegios SYSTEM

Se ha revelado una nueva vulnerabilidad crítica en el sistema de orquestación de contenedores Kubernetes, identificada como CVE-2023-5528. Esta falla permite la ejecución remota de código con privilegios de SYSTEM en todos los puntos finales de Windows dentro de un clúster de Kubernetes.

Detalles técnicos y impacto

Según el investigador de seguridad de Akamai, Tomer Peled, la vulnerabilidad se aprovecha mediante la aplicación de archivos YAML maliciosos en el clúster. La explotación exitosa podría resultar en una toma completa de todos los nodos de Windows en un clúster.

La vulnerabilidad afecta a todas las versiones de kubelet, incluida la versión 1.8.0 y posteriores. Fue corregida como parte de las actualizaciones publicadas el 14 de noviembre de 2023 en las siguientes versiones: kubelet v1.28.4, v1.27.8, v1.26.11 y v1.25.16.

Características afectadas

El problema surge del uso de llamadas a funciones inseguras y falta de saneamiento de la entrada del usuario. Se relaciona con la característica de volúmenes de Kubernetes, especialmente con los volúmenes locales que permiten montar una partición de disco en un pod especificando o creando un volumen persistente.

Al crear un pod que incluye un volumen local, el servicio kubelet alcanza la función 'MountSensitive()'. Dentro de esta función, hay una línea cmd que llama a 'exec.command', lo cual crea un enlace simbólico entre la ubicación del volumen en el nodo y la ubicación dentro del pod.

Esta laguna permite a los atacantes crear un PersistentVolume con un parámetro de ruta especialmente diseñado en el archivo YAML, lo que desencadena la inyección y ejecución de comandos mediante el uso del separador de comandos «&&».

Corrección implementada

El equipo de Kubernetes optó por eliminar la llamada cmd y reemplazarla con una función GO nativa que realizará la misma operación 'os.Symlink()'. Esta corrección forma parte del parche implementado para mitigar la vulnerabilidad.

Contexto adicional

La divulgación de esta vulnerabilidad ocurre cuando una falla crítica descubierta en el final de su vida útil (EoL) de la cámara Zhejiang Uniview ISC modelo 2500-S (CVE-2024-0778, puntuación CVSS: 9.8) está siendo explotada por actores de amenazas para lanzar una botnet Mirai variante llamada NetKiller que comparte infraestructura con una botnet diferente llamada Condi.

El código fuente de la botnet Condi se publicó públicamente en Github entre el 17 de agosto y el 12 de octubre de 2023. Según Akamai, es probable que otros actores de amenazas lo estén utilizando.

Recomendaciones

La única mitigación disponible es parchear Kubernetes a una versión posterior a la 1.28.3.