
Preuve de concept d'escalade RCE du contrôleur d'admission ingress-nginx
CVE-2025-1974 (IngressNightmare) est une vulnérabilité critique (CVSS 9.8) d'exécution de code à distance non authentifiée dans le contrôleur d'admission ingress-nginx de Kubernetes.
Flux d'attaque :
AdmissionReview) avec l'annotation qui injecte la directive ssl_enginenginx -t qui charge et exécute le .so malveillantImpact :
Exécutez le script ./setup_cve_env fourni. Il installera tous les outils requis (minikube, kubectl, helm) et créera un cluster minikube à un nœud. Ensuite, une version vulnérable du contrôleur d'entrée NGINX sera déployée sur le cluster, ainsi qu'un pod attaquant qui utilisera le webhook d'admission du contrôleur pour envoyer la charge utile.
WEBHOOK_IP=$(kubectl get pod -n ingress-nginx -l app.kubernetes.io/component=controller -o jsonpath='{.items[0].status.podIP}')
kubectl exec attacker -- python3 /tmp/exploit.py $WEBHOOK_IP
Les journaux d'erreurs de réponse afficheront CVE-2025-1974 RCE TRIGGERED. De plus, les journaux d'erreurs exfiltreront les secrets, car le pod du contrôleur d'entrée a accès à tous les secrets du cluster.
La charge utile .so créera également un fichier pwned. Vérifiez sa présence avec :
kubectl exec -n ingress-nginx $CPOD -- ls -l /tmp/pwned