
PoC لتصعيد RCE في وحدة التحكم بالقبول ingress-nginx
CVE-2025-1974 (IngressNightmare) هي ثغرة تنفيذ تعليمات برمجية عن بُعد غير مصادق عليها (RCE) ذات خطورة حرجة (CVSS 9.8) توجد في وحدة التحكم في قبول (admission controller) الخاص بـ ingress-nginx في كوبرنيتيس.
تدفق الهجوم:
AdmissionReview) تحتوي على التعليق التوضيحي الذي يحقن توجيه ssl_enginenginx -t والذي يقوم بتحميل وتنفيذ الملف .so الخبيثالتأثير:
قم بتشغيل السكربت المرفق ./setup_cve_env. سيقوم بتثبيت جميع الأدوات المطلوبة (minikube، kubectl، helm) وإنشاء كتلة أحادية العقدة من minikube.
بعد ذلك سيتم نشر إصدار ضعيف من NGINX ingress-controller على الكتلة، بالإضافة إلى pod مهاجم سوف يستخدم webhook القبول لوحدة التحكم لإرسال الحمولة.
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
سيظهر في سجلات الأخطاء CVE-2025-1974 RCE TRIGGERED. أيضًا، ستقوم سجلات الأخطاء بتسريب الأسرار (secrets)، حيث أن pod وحدة التحكم في ingress-nginx لديه حق الوصول إلى جميع أسرار الكتلة.
سيقوم ملف .so الضار أيضًا بإنشاء ملف pwned. يمكن التحقق من وجوده باستخدام:
kubectl exec -n ingress-nginx $CPOD -- ls -l /tmp/pwned