Cabecera blog ciberseguridad

Vulnerabilidad crítica IngressNightmare afecta al controlador Ingress NGINX Controller de Kubernetes

La vulnerabilidad IngressNightmare se puede subsanar actualizando el software

Se ha revelado información acerca de IngressNightmare, un conjunto de cinco nuevas vulnerabilidades que afectan al controlador Ingress NGINX Controller de Kubernetes. IngressNightmare permitiría a un atacante remoto la ejecución de comandos sin necesidad de autenticación.

Ingress expone rutas HTTP y HTTPS desde fuera del clúster a los servicios internos del mismo. El enrutamiento del tráfico se controla mediante reglas definidas en el recurso Ingress.

A continuación, se muestra un ejemplo sencillo donde un Ingress envía todo su tráfico a un solo servicio:

IngressNightmare es una vulnerabilidad que afecta a Kubernetes

Ingress diagrama de flujo

Características principales

A continuación, se detallan las características principales de las cinco vulnerabilidades conocidas de manera conjunta como IngressNightMare:

  • Vulnerabilidad CVE-2025-1974:
    • Software Afectado: Ingress Nginx Controller
    • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (9.8 Critical)
    • Resumen: Un atacante no autenticado con acceso a la red pod puede lograr la ejecución de código arbitrario en el contexto del controlador ingress-nginx bajo ciertas condiciones.
    • Exploit público: Sí, véase el siguiente enlace.
  • Vulnerabilidad CVE-2025-1098:
    • Software Afectado: Ingress Nginx Controller
    • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (8.8 High)
    • Resumen: Las anotaciones mirror-target y mirror-host de Ingress pueden ser utilizadas para inyectar configuración arbitraria en NGINX, resultando en la ejecución de código arbitrario en el contexto del controlador ingress-nginx y la revelación de secretos accesibles al controlador.
    • Exploit público: Sí.
  • Vulnerabilidad CVE-2025-1097:
    • Software Afectado: Ingress Nginx Controller
    • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (8.8 High)
    • Resumen: La anotación auth-tls-match-cn de Ingress puede ser utilizada para inyectar configuración en NGINX, resultando en la ejecución de código arbitrario en el contexto del controlador ingress-nginx y la revelación de secretos accesibles al controlador.
    • Exploit público: Sí.
  • Vulnerabilidad CVE-2025-24514:
    • Software Afectado: Ingress Nginx Controller
    • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (8.8 High)
    • Resumen: La anotación auth-url de Ingress puede ser utilizada para inyectar configuración en NGINX, resultando en la ejecución de código arbitrario en el contexto del controlador ingress-nginx y la revelación de secretos accesibles al controlador.
    • Exploit público: Sí.
  • Vulnerabilidad CVE-2025-24513:
    • Software Afectado: Ingress Nginx Controller
    • CVSS Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:L (4.8 Medium)
    • Resumen: La función Controlador de Admisión de ingress-nginx incluye datos proporcionados por el atacante en un nombre de archivo, lo que provoca un cruce de directorios dentro del contenedor. Esto podría provocar una denegación de servicio o, en combinación con otras vulnerabilidades, una divulgación limitada de objetos secretos del clúster.
    • Exploit público: No

Mitigación de IngressNightmare

La solución principal consiste en actualizar urgentemente el controlador Ingress NGINX a las nuevas versiones disponibles que corrigen esta vulnerabilidad:

El 24 de marzo, Kubernetes publicó un comunicado con la información oficial y las posibles actualizaciones relativas a esta vulnerabilidad:

Productos afectados Versiones afectadas Versiones solucionadas
Ingress NGINX Controller 1.12.0 1.12.1
Ingress NGINX Controller 1.11.4 e inferiores 1.11.5

Para comprobar la versión de Ingress NGINX Controller instalada se puede ejecutar el siguiente comando:

kubectl get deployment -n ingress-nginx -o jsonpath="{.items[*].spec.template.spec.containers[*].image}"

De forma complementaria se recomienda:

  • Asegurarse que el endpoint del webhook de admisión no está expuesto a Internet.
  • Implementar políticas de red estrictas para limitar el acceso al controlador de admisión.
  • Deshabilitar temporalmente el controlador de admisión si no es posible realizar actualizaciones inmediatas utilizando: controller.admissionWebhooks.enabled=false para instalaciones Helm.

Además, los clientes pueden usar el siguiente comando para determinar si los clústeres están usando ingress-nginx:

kubectl get pods --all-namespaces --selector app.kubernetes.io/name=ingress-nginx

Como parte de su servicio de vulnerabilidades emergentes, Tarlogic monitoriza de forma proactiva el perímetro de sus clientes para informar, detectar y notificar urgentemente la presencia de esta vulnerabilidad, así como otras amenazas críticas que podrían causar un grave impacto sobre la seguridad de sus activos.