
Análisis técnico en profundidad de CVE-2025-1974 (IngressNightmare), una RCE crítica en el controlador de admisión de validación de ingress-nginx para Kubernetes, incluyendo causa raíz, cadena de explotación y guía de detección.
Este documento presenta la investigación de la vulnerabilidad CVE-2025-1974, que afecta al componente ingress-nginx (validating admission controller) para Kubernetes.
CVE-2025-1974 es una vulnerabilidad crítica (CVSS 3.1 9.8), que consiste en una ejecución remota de código (RCE) sin autenticación en el contexto del proceso ingress-nginx. Al realizar el ataque, un atacante con acceso a la red de pods (o la capacidad de enviar un AdmissionReview al validating webhook) puede lograr la ejecución de código arbitrario en el pod del controlador, lo que potencialmente conduce a la divulgación de Secrets y la toma del clúster.
Ingress-nginx es uno de los controladores Ingress más comunes en Kubernetes (las estimaciones muestran su uso en decenas de porcentaje de clústeres), por lo que el impacto práctico de la vulnerabilidad es muy alto. La descripción, el análisis técnico y las recomendaciones oficiales de corrección han sido publicados por Kubernetes, investigadores de Wiz y varios blogs de proveedores.
Analizar paso a paso CVE-2025-1974 y preparar los materiales necesarios para un write-up:
Esta investigación se lleva a cabo exclusivamente con fines educativos y éticos y está orientada a entornos de prueba/controlados.
Bajo ninguna circunstancia ejecute exploits/PoC contra clústeres ajenos o instancias de acceso público sin el permiso escrito del propietario. La publicación de un PoC completamente funcional y «armamentizado» en abierto aumenta enormemente el riesgo de abuso; en la parte pública es mejor presentar un safe-PoC y la metodología. (Los avisos oficiales y los proveedores también enfatizan la precaución al difundir exploits).
cpe:2.3:a:kubernetes:ingress-nginx_controller:<version> — versiones vulnerables de ingress-nginx (en los avisos se indican versiones concretas; actualice los valores en la publicación final).Condiciones de configuración en las que la vulnerabilidad es relevante:
Resumen breve.
La vulnerabilidad se encontró en el componente Validating Admission Controller del controlador Ingress-NGINX y está relacionada con la forma en que este componente genera y verifica la configuración temporal de NGINX basada en los Ingress / AdmissionReview entrantes. Durante el procesamiento, el controlador genera nginx.conf y ejecuta una verificación de configuración (nginx -t). Debido a una sanitización insuficiente de los campos de Ingress/AdmissionReview, un atacante puede insertar fragmentos especialmente preparados que se incorporan al archivo de configuración generado y, como resultado, provocan la ejecución de comandos dentro del proceso del controlador, es decir, una ejecución remota de código (RCE) en el pod de ingress-nginx.
AdmissionReview/Ingress entrantes, aceptados por el validating webhook del controlador, se convierten en datos de origen para la generación de la configuración de NGINX (incluyendo campos de anotaciones, configuraciones de backend, etc.).Ingress malicioso o un AdmissionReview directo pueden inyectar cadenas controladas en las plantillas/fragmentos de configuración. Al verificar/cargar dicho nginx.conf, el proceso de verificación (nginx -t) y las operaciones posteriores con el archivo de configuración pueden provocar la ejecución de código arbitrario, la escritura/ejecución de archivos o la ejecución de comandos en el contexto del controlador.AdmissionReview al validating webhook (acceso desde la red de pods o acceso de red directo); ausencia de medidas compensatorias como NetworkPolicy, restricciones RBAC o autenticación adicional del webhook. En algunos escenarios, la elusión de permisos de Create/Update es posible enviando un AdmissionReview manipulado directamente al webhook.
La explotación exitosa otorga ejecución de código en el contenedor ingress-nginx, lo que generalmente permite: