كشفت أبحاث أمنية عن ثغرات خطيرة في خوادم NGINX Plus و NGINX Open، بما في ذلك ثغرة حرجة ظلت مجهولة لمدة 18 عامًا، مما يثير قلقًا بشأن أمن الويب.
تتعلق الثغرة المكتشفة، والتي أطلق عليها اسم “NGINX Rift”، بخلل في وحدة `ngx_http_rewrite_module` في NGINX، وتم التعرف عليها تحت المعرّف CVE-2026-42945. يمكن للمهاجمين استغلال هذه الثغرة لتنفيذ تعليمات برمجية عن بعد أو تعطيل الخدمة.
ثغرة NGINX Rift: خطر ظل خفيًا لعقدين
تعتبر ثغرة “NGINX Rift” نقطة ضعف حرجة ضمن وحدة `ngx_http_rewrite_module`، والتي تشكل جزءًا أساسيًا من طريقة معالجة NGINX لطلبات إعادة الكتابة (rewrite). يحدث الخلل عندما تتتابع توجيهات `rewrite` مع توجيهات أخرى مثل `if` أو `set`، وذلك عند استخدام تعبيرات نمطية متوافقة مع Perl (PCRE) متبوعة بنص بديل يحتوي على علامة استفهام.
وفقًا لتقرير F5، يمكن لمهاجم غير مصادق عليه، من خلال إرسال طلبات HTTP معدة بعناية، أن يتسبب في فيضان في منطقة الذاكرة المخصصة (heap buffer overflow) في عملية الخادم العامل (worker process). هذا الفيضان قد يؤدي إلى إعادة تشغيل الخادم، وفي بعض الحالات، إذا كانت ميزة توزيع مساحة العنوان (ASLR) معطلة، يمكن أن يسمح بتنفيذ تعليمات برمجية خبيثة.
كيفية عمل الثغرة
تتيح الثغرة للمهاجم، الذي يمكنه الوصول إلى خادم NGINX المعرض للخطر عبر بروتوكول HTTP، إرسال طلب واحد كافٍ لإحداث فيضان في الذاكرة وبالتالي تحقيق تنفيذ تعليمات برمجية عن بعد. يؤكد الباحثون من depthfirst أنه لا يلزم وجود مصادقة أو صلاحيات مسبقة لاستغلال هذه الثغرة.
ما يزيد من خطورة الوضع هو أن البيانات التي يتم تجاوزها إلى خارج نطاق الذاكرة المخصصة مستمدة من عنوان URI الذي يرسله المهاجم، مما يعني أن المهاجم يمكنه تشكيل طبيعة تلف البيانات. كما يمكن تكرار هذه الهجمات لتعطيل الخادم بشكل مستمر، مما يؤثر على توافر جميع المواقع التي تخدمها هذه النسخة من NGINX.
تم الكشف عن الثغرة بشكل مسؤول في 21 أبريل 2026، وتم إصلاحها في الإصدارات الحديثة من NGINX Plus و NGINX Open Source. للاطلاع على قائمة الإصدارات المتأثرة والمُصححة، يُنصح بالرجوع إلى الإعلانات الرسمية.
ثغرات إضافية تم إصلاحها
بالإضافة إلى ثغرة “NGINX Rift”، تم إصلاح ثلاث ثغرات أخرى في NGINX Plus و NGINX Open Source:
CVE-2026-42946: تخصيص مفرط للذاكرة
تتعلق هذه الثغرة، ذات التصنيف CVE-2026-42946، بتخصيص مفرط للذاكرة في وحدتي `ngx_http_scgi_module` و `ngx_http_uwsgi_module`. يمكن لمهاجم غير مصادق عليه، والذي يمتلك القدرة على اعتراض الاتصالات (Adversary-in-the-Middle)، التحكم في استجابات الخادم الأصلية لقراءة ذاكرة الخادم العامل أو إعادة تشغيله.
CVE-2026-40701: استخدام بعد التحرير (Use-After-Free)
تكشف الثغرة CVE-2026-40701 عن مشكلة “استخدام بعد التحرير” في وحدة `ngx_http_ssl_module`. يمكن لمهاجم غير مصادق عليه أن يؤثر على تعديل البيانات أو يعيد تشغيل الخادم العامل في سيناريوهات معينة تتعلق بإعدادات SSL.
CVE-2026-42934: قراءة خارج الحدود (Out-of-Bounds Read)
تؤثر الثغرة CVE-2026-42934 على وحدة `ngx_http_charset_module`، مما قد يسمح لمهاجم غير مصادق عليه بالكشف عن محتويات الذاكرة أو إعادة تشغيل الخادم العامل عند استخدام توجيهات معينة في CCHARSET وإعدادات proxy_pass مع تعطيل التخزين المؤقت.
تنصح الجهات الأمنية المستخدمين بتحديث أنظمتهم إلى أحدث الإصدارات المتوفرة لضمان الحماية القصوى. وفي حال عدم إمكانية تطبيق الرقعة الأمنية لثغرة CVE-2026-42945 على الفور، يُنصح بإعادة تكوين إعدادات `rewrite` واستبدال الأجزاء الملتقطة غير المسماة بأجزاء ملتقطة مسماة في جميع توجيهات `rewrite` المتأثرة.

