استغلال NGINX Rift لـ RCE (CVE-2026-42945) من @DepthFirstDisclosures
أداة إثبات مفهوم (PoC) احترافية للبحث وتحديد ثغرة NGINX Rift، وهي تجاوز سعة مخزن مؤقت حرج في كومة الذاكرة في وحدة ngx_http_rewrite_module.
نظرة عامة على الثغرة
معرف CVE: CVE-2026-42945
الاسم المستعار: NGINX Rift
الخطورة: حرجة (CVSS 9.2)
الإصدارات المتأثرة: NGINX 0.6.27 إلى 1.30.0
السبب الجذري: خطأ في عدم تطابق الحجم في محرك إعادة الكتابة ذو المرورين عند استخدام التقاطات PCRE غير المسماة ($1, $2) وسلاسل الاستبدال التي تحتوي على ?.
التأثير: تنفيذ أوامر عن بُعد غير مصادق عليه (RCE) أو رفض الخدمة (DoS).
الميزات
دعم متعدد الأوضاع: اختبار عبر عنوان URL واحد أو قائمة دفعة من ملف .txt.
طرق استغلال متعددة:
id: تنفيذ أمر id (افتراضي).
sleep: تحقق زمني (مثالي لـ RCE الأعمى).
write: محاولة كتابة ملف إلى أدلة جذر الويب الشائعة.
[+] ضعيف (أخضر): تسبب الاستغلال في توقيع تلف الذاكرة. إذا تم استخدامه مع sleep، تحقق مما إذا كان وقت الاستجابة يطابق مدة السكون.
[-] الهدف ليس ضعيفًا (أحمر): لم يتمكن الاستغلال من إحداث تعطل باستخدام مرشحات الذاكرة المتوفرة.
[DEBUG] (أصفر/أزرق): معلومات أساسية عن رش الكومة وعناوين المرشحين.
المتطلبات والقيود
Python 3.x: لا توجد مكتبات خارجية مطلوبة (يستخدم socket و argparse القياسيين).
ASLR: يستخدم إثبات المفهوم هذا عناوين ذاكرة ثابتة. على الأنظمة التي يكون فيها ASLR ممكّنًا، سيؤدي الاستغلال على الأرجح إلى رفض الخدمة (DoS) بدلاً من RCE ما لم يتم توفير تسرب للذاكرة.
تعزيز الأمان: قد يمنع تصفية الخروج (جدران الحماية) طرق curl أو shell من إرسال البيانات إليك. استخدم طريقة sleep للحصول على تأكيد أكثر موثوقية.
إخلاء مسؤولية
هذه الأداة مخصصة للأغراض التعليمية والتدقيق الأمني المصرح به فقط. المؤلف غير مسؤول عن أي استخدام خاطئ أو ضرر ناتج عن هذا البرنامج النصي. احصل دائمًا على إذن صريح قبل الاختبار ضد أي بنية تحتية.