En el controlador de ingreso ingress-nginx en desarrollo del proyecto Kubernetes se han detectado tres vulnerabilidades que permiten acceder a la configuración del objeto Ingress con la configuración predeterminada, donde, entre otras cosas, se almacenan las credenciales para acceder a los servidores de Kubernetes, lo que permite obtener acceso privilegiado al clúster. Los problemas se presentan únicamente en el controlador ingress-nginx del proyecto Kubernetes y no afectan al controlador kubernetes-ingress, desarrollado por los desarrolladores de NGINX.
El controlador de ingreso actúa como una puerta de enlace y se utiliza en Kubernetes para organizar el acceso desde la red externa a los servicios dentro del clúster. El controlador ingress-nginx es el más popular y utiliza servidor NGINX para el enrutamiento de solicitudes al clúster, la administración de solicitudes externas y el balanceo de carga. El proyecto Kubernetes proporciona controladores de ingreso básicos para AWS, GCE y nginx, siendo este último no relacionado con el controlador kubernetes-ingress, cuyo mantenimiento corre a cargo de la compañía F5/NGINX.

Las vulnerabilidades CVE-2023-5043 y CVE-2023-5044 permiten ejecutar código propio en servidor con los permisos del proceso del controlador de ingreso, utilizando para su inserción los parámetros «nginx.ingress.kubernetes.io/configuration-snippet» y «nginx.ingress.kubernetes.io/permanent-redirect». Entre otras cosas, los permisos de acceso obtenidos permiten extraer el token utilizado para la autenticación a nivel de control del clúster. La vulnerabilidad CVE-2022-4886 permite eludir la verificación de rutas de archivos utilizando la directiva log_format.
Las dos primeras vulnerabilidades se manifiestan únicamente en las versiones de ingress-nginx anteriores a la 1.9.0, y la última, anterior a la 1.8.0. Para llevar a cabo un ataque, un atacante debe tener acceso a la configuración del objeto de ingreso, por ejemplo, en clústeres Kubernetes multitenencia, donde se permiten a los usuarios crear objetos en su espacio de nombres.
Fuente: opennet.ru
