
Una herramienta de prueba mínima para ayudar a detectar vulnerabilidades de inyección de anotaciones en controladores de Kubernetes NGINX Ingress. Este script envía una solicitud AdmissionReview manipulada para simular una posible ruta de explotación de CVE-2025-1974 y verifica señales de anotaciones malinterpretadas en los registros del controlador.
Este script prueba vulnerabilidades de inyección de anotaciones en clústeres de Kubernetes que utilizan el Controlador de Ingress NGINX. Está diseñado solo para fines de detección en relación con CVE-2025-1974, que permite que anotaciones maliciosas influyan en la configuración de NGINX.
La vulnerabilidad, divulgada por Wiz.io (publicación en el blog), implica la inyección de anotaciones que son manejadas incorrectamente por el controlador. Por ejemplo:
nginx.ingress.kubernetes.io/auth-url: "http://placeholder/#; error_log /root/this_path_shouldnt_exist.log debug; #"
Esto puede provocar un comportamiento inesperado en la configuración de NGINX y errores de permisos si se procesa. En escenarios más avanzados, este tipo de inyección podría encadenarse con otras configuraciones incorrectas para lograr ejecución remota de código (RCE).
AdmissionReview manipulado desde un archivo YAML./validate del controlador de admisión.admission_review.yaml: Contiene la solicitud AdmissionReview manipulada.main.py: Envía el payload al controlador.Primero, reenvíe el puerto del controlador de admisión:
kubectl port-forward -n ingress-nginx svc/ingress-nginx-controller-admission 8443:443
Luego ejecute:
python main.py --url https://localhost:8443
Revise los registros del controlador de ingress:
kubectl logs -n ingress-nginx -l app.kubernetes.io/component=controller
Puede ver:
nginx: [emerg] open() "/root/this_path_shouldnt_exist.log" failed (13: Permission denied)
Esto indica que la anotación fue ejecutada incorrectamente como una directiva.
Solo para pruebas educativas y autorizadas. No ejecute en sistemas sin permiso.
Utilice esta herramienta para verificar si su clúster es vulnerable a la inyección de anotaciones a través de Ingress NGINX. La explotación de esta vulnerabilidad puede ser parte de una cadena de ataque más amplia que conduzca a la ejecución remota de código.