
كود استغلال لـ CVE-2026-42533، يوفّر تنفيذًا لإثبات المفهوم للثغرة المحددة.
بحث أمني متكامل السلسلة حول CVE-2026-42533 (CVSS 4.0 9.2
CRITICAL): تجاوز سعة المخزن المؤقت في الكومة داخل محرك السكربتات في NGINX، حيث يقوم map القائم على التعبيرات النمطية (regex) بإفساد حالة الالتقاط المشتركة بين مرحلة الطول ومرحلة النسخ أثناء تقييم قيمة معقدة — وهو أمر يمكن الوصول إليه قبل المصادقة على كلٍّ من واجهتي HTTP وstream (TLS SNI).
النتيجة: تنفيذ تعليمات عن بُعد قبل المصادقة (system() بصلاحيات مستخدم العامل) في بيئة مختبرية مثبّتة الإصدارات، أُعيد إنتاجها 3/3 — إضافةً إلى سلسلة بحث مستقلة على وحدة HTTP تربط أوليات (primitives) الثغرة من السبب الجذري وصولاً إلى اختراق العامل بشكل حتمي.
| الادعاء | الدليل |
|---|---|
| السبب الجذري مستخلص من التزامات الإصلاح (وليس من المدونات) | finding-sheet |
| كاشف آمن: أوراكل للنسخة المصابة مقابل المُرَقَّعة، دون أي انهيارات | poc/diagnose.py (تباين بين الاستجابة و500 no buffer space) |
| تعطيل حتمي للعامل (إجهاض بسبب فساد الكومة، core dump) | poc/crash.py — 2/2، تغيّر X-Worker-PID يثبت موت العامل |
| تجاوز سعة ببايتات عشوائية بما فيها NULs (كتابة قادرة على المؤشرات) | أولية body-map عبر HTTP، تم التحقق من تفريغ upstream الخام |
| تنفيذ تعليمات عن بُعد قبل المصادقة، مع إبطال ASLR وقت التشغيل (دون وسائل مساعدة مختبرية) | exploit/stream_rce.py — 3/3، تسريب + spray + إعادة بناء الجلسة |
# stream variant: the full chain (build is a pinned nginx rev, ~3 min)
cd lab/stream && docker compose up -d --build && cd ../..
python3 exploit/stream_rce.py --host 127.0.0.1 --port 29443 \
--cmd 'echo pwned-by-cve-2026-42533 > /tmp/proof'
docker compose -f lab/stream/docker-compose.yml exec nginx-rce cat /tmp/proof
# HTTP variant: deterministic crash PoC + safe detector
cd lab && docker compose up -d --build && cd ..
python3 poc/crash.py 127.0.0.1 8080 # worker aborts, core dumped
python3 poc/diagnose.py 127.0.0.1 8080 # VULNERABLE / PATCHED oracle
| المستند | ما هو |
|---|---|
| docs/finding-sheet.md | ورقة بيانات من صفحة واحدة: الإصدارات، CVSS، أنماط التهيئة، توقيعات الكشف |
| docs/report-ptes.md | تقرير كامل مُهيكل وفق PTES (7 مراحل) مع أدلة من المختبر |
| docs/research-writeup.md | سرد التحقيق — المنهجية، الطرق المسدودة، الدروس القابلة للنقل، مقارنة الأعمال السابقة |
سلسلة أبحاث وحدة HTTP هي عمل أصلي: تجميع السكربت غير المتماثل للأطوال/القيم المقاس تجريبيًا، وقانون تمرير القيم بالنسخ الثلاث، والبدائية الأساسية لخريطة الجسم الحافظة لـ NUL، وتحليل السلسلة الإجهاضية للمُخصِّص الجنائي. يتبع RCE الكامل لمتغير التدفق النهج المنشور لـ DepthFirst Disclosures (مُبلِّغ مُعترف به) مع الإسناد — راجع قسم الأعمال السابقة في التقرير للمقارنة تقنيةً بتقنية لكلتا السلسلتين.
يشارك هذا المستودع منهجيته مع
CVE-2026-42945 — NGINX Rewrite Heap Overrun: Analysis & Deterministic DoS
(المستودع الشقيق): نفس فئة خلل الطول/القيمة ثنائي التمرير في محرك سكربت nginx، الذي تم الوصول إليه هناك عبر rewrite/is_args — كاشف تفاضلي بالإضافة إلى DoS حتمي للعامل، مع ترك سؤال RCE مفتوحًا.
docs/ finding sheet · PTES report · research writeup
poc/ diagnose.py (safe oracle) · crash.py (deterministic DoS)
exploit/
stream_rce.py full RCE chain (leak → spray → session rebuild → system)
exploit.py HTTP-module chain (research artifact, near-closure)
lab/ HTTP lab (vulnerable 1.31.2 + patched 1.31.3, backends)
lab/stream/ pinned-build lab for the stream variant
b767540، a8289aa، 0cca8e0عمل بحثي تعليمي. شغّله فقط ضد الأنظمة التي تملكها أو المصرّح لك صراحةً باختبارها. تم إصلاح الثغرة — قم بترقية nginx إلى ≥ 1.30.4 / ≥ 1.31.3.