
إثبات مفهوم لثغرة CVE-2026-42945، وهي ثغرة حرجة من نوع تجاوز سعة الذاكرة المؤقتة في الكومة (heap buffer overflow) في وحدة إعادة الكتابة (rewrite module) لخادم NGINX، مما يتيح تنفيذ كود عن بعد عبر طلبات URI مصممة خصيصًا.
تجاوز سعة المخزن المؤقت في الكومة (heap buffer overflow) في مكوّن ngx_http_rewrite_module الخاص بـ NGINX، والذي تم تقديمه في 2008 — أي أنه كان موجودًا لمدة 16 عامًا قبل اكتشافه.
الثغرة موجودة في محرك البرنامج النصي ثنائي المرور (two-pass script engine):
المشكلة: . عندما يحتوي نص الاستبدال (rewrite replacement) على (علامة استفهام)، يؤدي (unpropagated flag) إلى تخصيص مخزن مؤقت بحجم غير كافٍ، مما يسمح لبيانات URI المشفرة التي يتحكم فيها المهاجم بتجاوز حدود الكومة.
?# تصوّري: إضافة إشارات '+' إلى طلب URI تجبر
# دالة التشفير على توسيع كل بايت إلى ثلاثة بايتات،
# مما يؤدي إلى تجاوز سعة القطعة المخصصة. حجم التجاوز
# يتم التحكم فيه بالكامل بواسطة عدد الأحرف القابلة للتشفير.
لتحقيق تنفيذ الأوامر عن بُعد (RCE) مع تجاوز ASLR:
ngx_pool_tngx_pool_cleanup_s مزيف يستدعي system() عند تدمير التجمع (pool destruction)ثغرات CVE ذات الصلة التي اكتشفها نفس النظام: CVE-2026-42946, CVE-2026-40701, CVE-2026-42934
DepthFirstDisclosures/Nginx-Rift على GitHubتم اكتشاف هذه الثغرة بشكل مستقل ذاتيًا بواسطة نظام التحليل الأمني لـ DepthFirst بعد نقرة واحدة لإدخال كود مصدر NGINX — مما يسلط الضوء على قوة اكتشاف الثغرات الآلي.
? في عمليات الاستبدال