Vulnerabilidad crítica en Ingress NGINX Controller permite RCE sin autenticación

tablets infectadas en mexico
Gobierno de México distribuye tablets infectadas: 200,000 estudiantes en riesgo por BADBOX 2.0
19 de marzo de 2025
nextjs
Grave vulnerabilidad en Next.js permite eludir comprobaciones de autorización en el middleware
25 de marzo de 2025

Un conjunto de cinco fallos de seguridad críticos han sido revelados en el Ingress NGINX Controller para Kubernetes, lo que podría resultar en la ejecución remota de código sin autenticación. Esto pone en riesgo inmediato a más de 6,500 clústeres al exponer el componente a internet público.

Las vulnerabilidades (CVE-2025-24513, CVE-2025-24514, CVE-2025-1097, CVE-2025-1098 y CVE-2025-1974), con una puntuación CVSS de 9.8, han sido denominadas colectivamente como IngressNightmare por la firma de seguridad en la nube Wiz. Cabe destacar que estas fallas no afectan al NGINX Ingress Controller, que es otra implementación diferente de controlador de ingreso para NGINX y NGINX Plus.

«La explotación de estas vulnerabilidades permite el acceso no autorizado a todos los secretos almacenados en todos los espacios de nombres dentro del clúster de Kubernetes, lo que podría resultar en la toma de control del clúster«, indicó la compañía en un informe compartido con The Hacker News.

Impacto de IngressNightmare

IngressNightmare afecta principalmente al componente de controlador de admisión del Ingress NGINX Controller para Kubernetes. Aproximadamente el 43% de los entornos en la nube son vulnerables a estos fallos.

El Ingress NGINX Controller utiliza NGINX como proxy inverso y balanceador de carga, permitiendo exponer rutas HTTP y HTTPS desde fuera de un clúster hacia los servicios internos.

La vulnerabilidad explota el hecho de que los controladores de admisión, desplegados dentro de un pod de Kubernetes, son accesibles a través de la red sin autenticación.

Específicamente, permite inyectar remotamente una configuración arbitraria de NGINX mediante el envío de un objeto malicioso de ingreso (tambien conocido como solicitudes AdmissionReview) directamente al controlador de admisión, lo que resulta en la ejecución de código en el pod del Ingress NGINX Controller.

«Los privilegios elevados del controlador de admisión y su accesibilidad de red sin restricciones crean una ruta crítica de escalamiento», explicó Wiz. «La explotación de esta falla permite a un atacante ejecutar código arbitrario y acceder a todos los secretos del clúster en diferentes espacios de nombres, lo que podría llevar al control total del clúster».

Detalles de las Vulnerabilidades

  • CVE-2025-24513 (CVSS: 4.8) – Falta de validación de entrada que puede provocar una vulnerabilidad de recorrido de directorios dentro del contenedor, lo que permite denegación de servicio (DoS) o divulgación limitada de secretos.
  • CVE-2025-24514 (CVSS: 8.8) – La anotación auth-url en Ingress permite la inyección de configuración en NGINX, lo que resulta en ejecución arbitraria de código y divulgación de secretos accesibles por el controlador.
  • CVE-2025-1097 (CVSS: 8.8) – La anotación auth-tls-match-cn en Ingress permite la inyección de configuración en NGINX, lo que resulta en ejecución arbitraria de código y divulgación de secretos accesibles por el controlador.
  • CVE-2025-1098 (CVSS: 8.8) – Las anotaciones mirror-target y mirror-host en Ingress permiten inyectar configuración arbitraria en NGINX, lo que resulta en ejecución arbitraria de código y divulgación de secretos accesibles por el controlador.
  • CVE-2025-1974 (CVSS: 9.8) – Un atacante no autenticado con acceso a la red del pod puede lograr ejecución arbitraria de código en el contexto del controlador ingress-nginx bajo ciertas condiciones.

Escenario de Ataque

En un ataque experimental, un actor malicioso podría subir una carga útil maliciosa en forma de biblioteca compartida al pod utilizando la función client-body buffer de NGINX, seguido del envío de una solicitud AdmissionReview al controlador de admisión.

Esta solicitud incluiría una de las inyecciones de configuración mencionadas anteriormente, lo que provocaría que la biblioteca compartida se cargara y resultara en ejecución remota de código.

Según Hillai Ben-Sasson, investigador de seguridad en la nube de Wiz, la cadena de ataque consiste en inyectar una configuración maliciosa, utilizarla para leer archivos sensibles y ejecutar código arbitrario. Esto podría permitir que un atacante abuse de una Service Account con altos privilegios para leer secretos de Kubernetes y, en última instancia, tomar el control del clúster.

Soluciones y Mitigaciones

En un aviso independiente, el Comité de Respuesta de Seguridad de Kubernetes afirmó que todas las vulnerabilidades, excepto CVE-2025-1974, están relacionadas con mejoras en el manejo de ciertos parámetros de configuración por parte del Ingress NGINX. Sin embargo, CVE-2025-1974 puede encadenarse con las otras fallas para facilitar la toma de control del clúster sin necesidad de credenciales o acceso administrativo.

Tras la divulgación responsable, las vulnerabilidades han sido corregidas en las versiones 1.12.1, 1.11.5 y 1.10.7 del Ingress NGINX Controller.

Los usuarios deben actualizar a la versión más reciente lo antes posible y asegurarse de que el webhook de admisión no esté expuesto externamente.

Como medidas de mitigación adicionales, se recomienda:

  • Limitar el acceso al controlador de admisión solo al servidor API de Kubernetes.
  • Deshabilitar temporalmente el controlador de admisión si no es necesario.