
برنامج نصي لتقييم المخاطر المحلية لـ CVE-2026-42945 (nginx-rift). يتحقق من الإصدار، وتكوين rewrite+set الضعيف، وحالة ASLR، وتقوية الترجمة لتحديد خطر RCE الفعلي مقابل DoS.
أداة تقييم المخاطر المحلية لـ CVE-2026-42945 (Nginx Rift). على عكس الأدوات التي تخبرك مباشرة بأن "الإصدار المتأثر خطير"، يقوم هذا السيناريو بفحص الشروط الثلاثة التي تحدد المخاطر الفعلية طبقة تلو الأخرى، ويقدم استنتاجًا يتوافق مع حالتك الخاصة.
CVE-2026-42945 هي ثغرة تجاوز سعة المخزن المؤقت في الكومة (CWE-122) موجودة منذ 18 عامًا في وحدة ngx_http_rewrite_module في nginx، وتصنيفها وفقًا لـ CVSS 4.0 هو 9.2. لكن الإعلان يتضمن قيدًا رئيسيًا واحدًا:
"Code execution possible on systems without ASLR protection"
يتطلب تحقيق الـ RCE استيفاء ثلاثة شروط في وقت واحد:
rewrite + set محددةفي حالة عدم استيفاء أي منها، فالأسوأ هو انهيار عملية العامل (worker) وإعادة تشغيلها تلقائيًا (DoS)، وليس السيطرة على الخادم.
تحليل مفصل: 《قنبلة nginx المخفية لمدة 18 عامًا، هل فجرت الثغرة ذات 9.2 درجة خادمك؟》
# التشغيل (يتطلب صلاحيات sudo لقراءة تهيئة nginx الكاملة)
sudo bash check_cve_2026_42945.sh
يتحقق السيناريو بالتسلسل من العناصر التالية، وعند عدم استيفاء أي عنصر يخرج مبكرًا مع الاستنتاج:
| العنصر | الوصف |
|---|---|
| إصدار nginx | النطاق المتأثر: 0.6.27 – 1.30.0 |
| تهيئة إثارة الثغرة | وجود rewrite بعلامة ? و set مع مجموعة الالتقاط في نفس كتلة location |
| حالة ASLR | قراءة الملف /proc/sys/kernel/randomize_va_space |
| تعزيز التجميع | كشف -fcf-protection / FORTIFY_SOURCE / Full RELRO / حماية المكدس |
الحالة الأولى: الإصدار متأثر ولكن لا توجد تهيئة محفزة (الأكثر شيوعًا)
[*] إصدار nginx: 1.24.0
[!] الإصدار 1.24.0 ضمن النطاق المتأثر، متابعة فحص الشروط المحفزة...
[*] فحص تهيئة nginx (التحقق من تركيبة rewrite+set)...
[✓] لم يتم العثور على تهيئة محفزة (تركيبة rewrite+set)
الاستنتاج: الإصدار متأثر، لكن لا توجد تهيئة محفزة، المخاطر الفعلية منخفضة جدًا
التوصية: خطط للترقية إلى 1.30.1 / 1.31.0، لا حاجة لمعالجة عاجلة
الحالة الثانية: تهيئة ثغرة موجودة، ASLR مفعل، تعزيز التجميع كامل
[!] الإصدار 1.24.0 ضمن النطاق المتأثر، متابعة فحص الشروط المحفزة...
[!] تم العثور على تهيئة محفزة:
→ location ~ ^/api/(.*)$ {
[✓] ASLR مفعل (المستوى 2، عشوائية كاملة)
→ الشرط الأساسي للاستغلال الموثوق لـ RCE غير متوفر، أسوأ الحالات هو انهيار عملية العامل (DoS)
[✓] تم الكشف عن -fcf-protection (حماية تدفق التحكم Intel CET)
[✓] تم الكشف عن FORTIFY_SOURCE=3
[✓] تم الكشف عن Full RELRO (GOT للقراءة فقط)
[✓] تم الكشف عن حماية المكدس (stack-protector)
مستوى المخاطر: منخفض
التوصية: قم بالترقية إلى nginx 1.30.1 / 1.31.0 في نافذة الصيانة التالية
الحالة الثالثة: تهيئة ثغرة موجودة، ASLR معطل
[!] تم العثور على تهيئة محفزة:
→ location ~ ^/api/(.*)$ {
[✗] ASLR معطل! خطر RCE يرتفع بشكل ملحوظ
مستوى المخاطر: عالٍ (DoS مؤكد / RCE محتمل)
إجراء فوري:
1. قم بإزالة أو تعديل تهيئة rewrite+set المحفزة مؤقتًا
2. تأكد من تفعيل ASLR: echo 2 | sudo tee /proc/sys/kernel/randomize_va_space
3. قم بترقية nginx: apt install nginx أو التثبيت من المصدر 1.30.1+
| المستوى | المعنى | وتيرة المعالجة الموصى بها |
|---|---|---|
| غير متأثر | nginx غير مثبت أو الإصدار مُصحح | لا حاجة لإجراء |
| منخفض جدًا | الإصدار متأثر ولكن لا توجد تهيئة محفزة | قم بالترقية في الصيانة الدورية التالية |
| منخفض | تهيئة محفزة موجودة، لكن ASLR + تعزيز التجميع كامل | قم بالترقية في نافذة الصيانة التالية |
| متوسط | تهيئة محفزة موجودة، وهناك ثغرات في الحماية | قم بالترقية في أقرب وقت، وجود خطر على التوفر |
| عالٍ | تهيئة محفزة موجودة + ASLR معطل + تعزيز مفقود | تعامل فورًا |
| المنتج | الإصدارات المتأثرة | الإصدارات المُصحَّحة |
|---|---|---|
| NGINX مفتوح المصدر | 0.6.27 – 1.30.0 | 1.30.1 / 1.31.0 |
| NGINX Plus | R32 – R36 | R36 P4 / R35 P2 / R32 P6 |
# Ubuntu / Debian
sudo apt update && sudo apt install nginx
# التحقق من الإصدار
nginx -v
الإعلان الرسمي: https://my.f5.com/manage/s/article/K000161019
تم التحقق من السيناريو فعليًا في جميع السيناريوهات التالية:
بيئة الاختبار: Ubuntu 22.04 LTS، nginx 1.24.0 (الحزمة الرسمية من Ubuntu)
include المتعددة المعقدة قد تؤدي إلى بعض الفوائت (يقوم السيناريو بتوسيع كل includes عبر nginx -T، ويغطي الغالبية العظمى من الحالات)MIT