Se han revelado tres fallas de seguridad de alta gravedad sin parches en el Controlador de ingreso NGINX para Kubernetes que un actor de amenazas podría utilizar como arma para robar credenciales secretas del clúster.
Las vulnerabilidades son las siguientes:
- CVE-2022-4886 (Puntuación CVSS: 8,8) – Ingreso-nginx La desinfección de rutas se puede omitir para obtener las credenciales del controlador Ingress-nginx.
- CVE-2023-5043 (Puntuación CVSS: 7,6) – La inyección de anotaciones Ingress-nginx provoca la ejecución de comandos arbitrarios
- CVE-2023-5044 (Puntuación CVSS: 7,6) – Inyección de código mediante la anotación nginx.ingress.kubernetes.io/permanent-redirect
“Estas vulnerabilidades permiten a un atacante que puede controlar la configuración del objeto Ingress robar credenciales secretas del clúster”, dijo Ben Hirschberg, CTO y cofundador de la plataforma de seguridad de Kubernetes ARMO. dicho de CVE-2023-5043 y CVE-2023-5044.
La explotación exitosa de las fallas podría permitir a un adversario inyectar código arbitrario en el proceso del controlador de ingreso y obtener acceso no autorizado a datos confidenciales.
CVE-2022-4886, resultado de una falta de validación en el archivo “spec.rules[].http.rutas[].path”, permite a un atacante con acceso al objeto Ingress desviar las credenciales de la API de Kubernetes del controlador de ingreso.
“En el Objeto de entradael operador puede definir qué ruta HTTP entrante se enruta a qué ruta interna”, señaló Hirschberg. “La aplicación vulnerable no verifica adecuadamente la validez de la ruta interna y puede apuntar al archivo interno que contiene el token de la cuenta de servicio que es la credencial del cliente para la autenticación contra el servidor API”.
En ausencia de correcciones, los mantenedores del software han lanzado mitigaciones que implican habilitar la opción “strict-validate-path-type” y configurar el indicador –enable-annotation-validation para evitar la creación de objetos Ingress con caracteres no válidos y imponer restricciones adicionales.
ARMO dijo que actualizar NGINX a la versión 1.19, además de agregar la configuración de línea de comandos “–enable-annotation-validation”, resuelve CVE-2023-5043 y CVE-2023-5044.
“Aunque apuntan en direcciones diferentes, todas estas vulnerabilidades apuntan al mismo problema subyacente”, afirmó Hirschberg.
“El hecho de que los controladores de ingreso tengan acceso a secretos TLS y a la API de Kubernetes por diseño los convierte en cargas de trabajo con un alto alcance de privilegios. Además, dado que a menudo son componentes públicos orientados a Internet, son muy vulnerables al tráfico externo que ingresa al clúster a través de ellos”.