
تدقيق مخاطر NGINX الدفاعي لخريطة التعبيرات النمطية CVE-2026-42533 مع ماسح الإعدادات وملاحظات Splunk/Defender وأدلة المختبر.
ملاحظة بحثية دفاعية حول CVE-2026-42533، وهو تجاوز سعة مخزن مؤقت في كومة الذاكرة (heap buffer overflow) في معالجة طلبات NGINX، مرتبط بتوجيهات map مع التقاطات تعبيرات نمطية وأنماط معينة لتقييم المتغيرات.
بعبارات بسيطة: NGINX هو برنامج خادم ويب ووكيل عكسي. غالبًا ما يقف أمام المواقع وواجهات برمجة التطبيقات (APIs)، ويستقبل طلبات الويب، ويقرر إلى أين يرسلها. قاعدة map هي ميزة في إعداد NGINX تعني: «إذا كانت قيمة الطلب تشبه X، فاضبط هذا المتغير على Y». التقاطات التعبيرات النمطية (regex captures) هي أجزاء النص المستخرجة من تطابق النمط.
هذا CVE مهم لأن بعض إصدارات NGINX الأقدم يمكنها معالجة نوع معين من أنماط map وتركيبات المتغيرات بشكل غير صحيح. لا يعني ذلك أن كل خادم NGINX معرّض للخطر. الإصدار مهم، لكن الإعداد النشط مهم أيضًا.
هذا المشروع آمن عمدًا: لا يتضمن حركة استغلال، أو حمولات انهيار، أو استكشافًا للبيئات الإنتاجية. الهدف هو إظهار كيفية فرز التعرض للمخاطر، وشرح الخطر، وتزويد المدافعين بمسار تحقق قابل للتكرار.

تدرج NGINX هذه المشكلة كنشرة أمنية رئيسية: الإصدارات المعرضة للخطر هي 0.9.6-1.31.2، والإصدارات المُصلَّحة هي 1.30.4+ و1.31.3+. يصف سجل تغييرات NGINX تجاوز سعة مخزن مؤقت في كومة الذاكرة داخل عملية عامل (worker) عندما يستخدم توجيه map مطابقة التعبيرات النمطية، ويُضمَّن متغير الخريطة في تعبير نصي بعد التقاط متأثر بتلك الخريطة.
يسجّل NVD وصف F5: قد يثير مهاجم غير مصادَق المشكلة عبر طلبات HTTP مصمّمة بعناية، ولكن فقط عندما تتوافق شروط الإعداد والتشغيل معًا. الأثر المباشر المتوقع هو إعادة تشغيل عامل NGINX ورفض الخدمة (denial of service)، مع احتمالية تنفيذ كود إذا تم تعطيل ASLR أو تجاوزه.
يجب على المدافعين الإجابة عن أربعة أسئلة قبل اعتبار نشر NGINX معرضًا للخطر. ببساطة: أكّد الإصدار أولًا، ثم تحقق من وجود نمط الإعداد الخطير فعليًا.
map مع مدخلات تعبيرات نمطية (regex)؟no buffer space in script copy؟إذا كانت هذه المصطلحات جديدة عليك: العامل (worker) هو عملية NGINX التي تتعامل مع الطلبات. حلقة الانهيار أو إشارة إعادة التشغيل تعني أن العملية قد تفشل ثم تُبدأ من جديد. الحزمة الخلفية من التوزيعة (distro backport) تعني أن موزّعي لينكس يطبّقون أحيانًا تصحيحًا على إصدار يبدو قديمًا دون تغيير رقم الإصدار إلى أحدث إصدار من المصدر.
flowchart LR
advisory["Read advisory and changelog"] --> version["Check NGINX version"]
version --> config["Review active config"]
config --> scanner["Run safe map-pattern scanner"]
scanner --> validate["Validate fixed build or vendor patch"]
validate --> hunt["Hunt restart and diagnostic signals"]
hunt --> remediate["Patch, reload, and document"]
scripts/audit_nginx_map_risk.py
ماسح استدلالي دفاعي لملفات إعداد NGINX. يبحث عن كتل map ذات التعبيرات النمطية، والالتقاطات، والتعبيرات النصية اللاحقة التي تشير إلى الالتقاطات ومخرجات الخريطة. لا يثبت أن الخادم قابل للاستغلال، بل يعثر على إعدادات تستحق مراجعة بشرية.
scripts/render_demo_gif.py
يعيد بناء صورة GIF التجريبية الصغيرة في README من مخرجات الماسح الفعلية.
detections/splunk_nginx_cve_2026_42533.spl
عمليات بحث Splunk لجرد الإصدارات، وأعراض الانهيار/إعادة التشغيل، وسلاسل التشخيص بعد التصحيح.
detections/defender_hunting_notes.kql
ملاحظات البحث في Microsoft Defender لمضيفي لينكس حيث تُجمع سجلات NGINX ونشاط العمليات.
detections/sigma_nginx_worker_restart_symptoms.yml
قاعدة بحث Sigma لأعراض إعادة تشغيل أو انهيار عامل NGINX. هي مؤشر للمراجعة، وليست دليل استغلال.
samples/nginx_map_patterns.conf
أمثلة إعداد آمنة وتخطيطية لشرح نمط الخطر. هذه ليست حمولات استغلال.
SECURITY.md
ملاحظة نطاق للمستودع. وهذا يبقي المشروع دفاعيًا واضحًا وآمنًا للمراجعة.
lab/windows-quickstart.ps1
مشغّل أدلة متوافق مع ويندوز ينفّذ الماسح ويحفظ المخرجات تحت .
يُخزَّن التحقق المحلي الحالي في evidence/. يشغّل البدء السريع لويندوز الماسح على إعداد المثال المرفق ويحفظ المحضر. يقوم تحقق Windows NGINX بتنزيل بناء NGINX الرسمي المُصلَّح، ويتأكد من إعداد المختبر عبر nginx -t، ويشغّل الماسح، ويحفظ الأدلة. يشغّل تحقق Kali VM الماسح نفسه داخل ضيف Kali VMware قابل للتخلص. يثبت هذا أن المستودع قابل للتنفيذ والمراجعة على ويندوز ولينكس مع إبقاء المشروع داخل حدود دفاعية.
powershell -ExecutionPolicy Bypass -File .\lab\windows-quickstart.ps1
powershell -ExecutionPolicy Bypass -File .\lab\windows-nginx-validation.ps1
python .\scripts\self_check.py
map ذات التعبيرات النمطية (regex).1.30.4+ أو 1.31.3+، أو إلى إصدار NGINX Plus المُصلَّح المناسب.no buffer space in script copy بعد تطبيق التصحيح.evidence/lab/windows-nginx-validation.ps1
ينزّل بناء NGINX الرسمي المُصلَّح لويندوز، ويتحقق من إعداد المختبر المحلي عبر nginx -t، ويشغّل الماسح، ويحفظ الأدلة.
lab/vmware-lab-notes.md
مسار مختبر اختياري أكثر اكتمالًا لجهاز لينكس افتراضي قابل للتخلص إذا احتيج لاحقًا إلى شرح قائم على لقطات الشاشة.