
هذه أداة كشف ثابتة لثغرة CVE-2026-42945 موجّهة للدفاع والفحص داخل الشبكة الداخلية، وتُستخدم للتحقق مما إذا كانت تكوينات NGINX المرتبطة بوحدة ngx_http_rewrite_module تحتوي على تركيبات rewrite عالية الخطورة.
هذه أداة كشف ثابتة لـ CVE-2026-42945 موجّهة لفرق الدفاع والفحص الداخلي للشبكات، وتُستخدم لفحص تكوينات NGINX المتعلقة بوحدة ngx_http_rewrite_module لتحديد ما إذا كانت هناك توليفات rewrite عالية الخطورة.
لا يوفر هذا المشروع كود استغلال الثغرة، ولا يرسل طلبات HTTP خبيثة، ولا يحاول التسبب في انهيار الخدمة أو تنفيذ كود عن بُعد. فهو يقرأ فقط ملفات تكوين NGINX المحلية لمساعدة فرق الأمان في تحديد ما إذا كان الترقية أو تعديل التكوين ضروريًا.
CVE-2026-42945 هي ثغرة تجاوز سعة المخزن المؤقت في الكومة (heap buffer overflow) في وحدة ngx_http_rewrite_module الخاصة بـ NGINX Open Source و NGINX Plus.
تشمل سيناريوهات الخطر الموصوفة في الإعلان العام تقريبًا ما يلي:
rewrite؛rewrite أو if أو set؛$1 و $2؛?.الإصدارات المصححة من NGINX Open Source تشمل 1.30.1 و 1.31.0 والإصدارات الأحدث. أما بالنسبة لـ NGINX Plus، فيُرجى الاعتماد على الإصدارات المصححة المذكورة في إعلان البائع.
روابط مرجعية:
يتطلب Python 3 فقط، دون أي اعتماديات خارجية.
python3 --version
يُوصى أولاً بتصدير التكوين الكامل المعالج لـ NGINX:
nginx -T > nginx-rendered.conf
python3 cve_2026_42945_checker.py nginx-rendered.conf
يمكنك أيضًا فحص مجلد التكوينات مباشرة:
python3 cve_2026_42945_checker.py /etc/nginx
إخراج بصيغة JSON:
python3 cve_2026_42945_checker.py --json nginx-rendered.conf
إذا لم يتضمن تصدير التكوين معلومات إصدار NGINX، يمكنك تحديد الإصدار يدويًا للمساعدة في التقييم:
python3 cve_2026_42945_checker.py --json --nginx-version 1.30.0 nginx-rendered.conf
إخراج بصيغة SARIF لسهولة الاستيراد إلى GitHub code scanning أو منصة الأمان الداخلية:
python3 cve_2026_42945_checker.py --sarif nginx-rendered.conf > cve-2026-42945.sarif
0: لم يتم العثور على أنماط تكوين عالية الخطورة؛1: تم العثور على نمط واحد على الأقل عالي الخطورة؛2: فشل قراءة ملف الإدخال أو المسار.تشمل الحقول الرئيسية في نتائج الفحص:
versions: إصدارات NGINX التي تم التعرف عليها من التكوين أو المعاملات ونتيجة التقييم؛findings: مواقع التكوينات المعرّضة للخطر وأسبابها والأدلة؛summary: عدد الملفات المفحوصة وعدد الاكتشافات وأعلى مستوى خطر.تُشير نتائج الأمثلة إلى أدلة مشابهة لهذا:
rewrite ... ?$1; -> set ... $1;
وهذا يعني أن شكل التكوين قريب من شروط الخطر الموضحة في الإعلان العام، ويحتاج إلى مراجعة ذات أولوية.
قم بترقية NGINX إلى الإصدارات المصححة أولاً:
1.30.1 أو 1.31.0 أو إصدارات أحدث؛يُوصى أيضًا بمراجعة قواعد rewrite:
$1 و $2 قدر الإمكان؛nginx -T.هذه الأداة هي كاشف تكوين ثابت، وليست أداة تحقق كاملة من الثغرة. قد لا تغطي:
يرجى اعتبارها أداة مساعدة للفحص الداخلي وتدقيق التكوين، وليس المعيار الوحيد لتقييم الثغرة.
تشغيل الاختبارات:
python -m pytest
يتضمن المستودع سير عمل GitHub Actions الذي يشغّل الاختبارات تلقائيًا عند كل push و pull request.