دليل عملي

ثغرة nginx CVE-2026-15176: الفحص والتحديث إلى 1.30.6

الأمان والمراقبة12 دقيقةً للقراءةعدد الخطوات: 16

في 14 أكتوبر 2026، أصدر nginx النسختين 1.30.6 (المستقرة) و1.31.7 (mainline)، وهما تصلحان خمس ثغرات، منها CVE-2026-15176. لا تمسّ كل ثغرة إلا إعدادات بعينها: alias مع rewrite، والتقاطات التعابير النمطية، وHTTP/3، وتدوير مفاتيح تذاكر TLS، وSSI مع AIO. لذلك، على مجموعة خوادم عملائك، ليس السؤال الحقيقي «هل خوادمي محدَّثة؟» بل «أيّ الأجهزة مكشوفة، وبأيّ ترتيب أعالجها؟». يقدّم لك هذا الدليل الأوامر اللازمة للإجابة في أقل من ساعة، ثم لإصلاح كل بيئة مع حصر الانقطاع في ثوانٍ معدودة.

المحتويات· ما الذي يصلحه nginx 1.30.6 و1.31.71/12
  1. 01ما الذي يصلحه nginx 1.30.6 و1.31.7
  2. 02الثغرات الخمس وما يجعلك مكشوفًا
  3. 03الإصدارات المتأثرة والإصدارات المصحَّحة
  4. 04حزمة التوزيعة أو Docker: رقم الإصدار لا يكفي
  5. 05جرد تعرّض خادم في عشر دقائق
  6. 06بأيّ ترتيب تعالج مجموعة خوادم
  7. 07التحديث بيئة تلو الأخرى
  8. 08يتعذر الترقيع اليوم: الحلول المؤقتة التي نشرتها F5
  9. 09الرصد: مؤشرات لا أدلة
  10. 10استكشاف الأخطاء: ما يظهر بعد التحديث
  11. 11خمس ثغرات على عشرين خادمًا: عبء الوكالة
  12. 12التوثيق الرسمي

ما الذي يصلحه nginx 1.30.6 و1.31.7

صدر الإصداران في اليوم نفسه، 14 أكتوبر 2026، على صفحة أخبار nginx.org. وهما يصلحان خمس ثغرات في عملية worker: ثلاث حالات إفساد للذاكرة، وحقن بيانات في جسم طلبات HTTP/3، وتزوير جلسة TLS. ثم صدر إصدار mainline 1.31.8 في 21 أكتوبر 2026؛ لا يذكر إعلانه أي ثغرة، لكنه يلي 1.31.7 فيتضمن إصلاحاتها.

أما الخطورة فلها قراءتان، ويجب نقلهما كما نُشرتا. تصنّف صفحة النشرات الأمنية في nginx.org الثغرات الخمس بدرجة «medium». وتمنح سجلات CVE التي نشرتها F5، الجهة المطوّرة لـ nginx، ثلاثًا منها درجة CVSS 3.1 تبلغ 8.1. وهي توضّح السيناريو: تتعطل عملية worker ثم تُعاد، ويبقى تنفيذ الشيفرة ممكنًا إذا كان ASLR معطّلًا أو جرى تجاوزه. وكلها تتطلب إعدادات محددة لتكون قابلة للاستغلال. وهذا ما يجعل الجرد مجديًا: في أي مجموعة خوادم، جزء منها غير معنيّ أصلًا.

الثغرات الخمس وما يجعلك مكشوفًا

  • CVE-2026-15176، alias وrewrite — فيض في الكومة داخل worker عندما يجمع location بين alias وrewrite وتوجيه set أو return يقرأ $request_filename، أو عندما يرد $request_filename في log_format. النطاق المتأثر: من 0.1.29 إلى 1.31.6.
  • CVE-2026-93479، السلاسل ذات المتغيرات — فيض أثناء حساب جذر المستندات أو التسجيل، وغالبًا عبر map بتعبير نمطي تُقرأ التقاطاته $1 و$2 من root أو log_format قبل متغيّر الخرج. النطاق المتأثر: من 1.30.0 إلى 1.30.5 ومن 1.31.2 إلى 1.31.6.
  • CVE-2026-95101، جسم طلب HTTP/3 — قد يُقرأ جزء من إطار مجهول على أنه جسم الطلب: تجاوز client_max_body_size أو حقن في الطلب المُمرَّر، مع proxy_request_buffering on، وهي القيمة الافتراضية. النطاق المتأثر: من 1.25.0 إلى 1.31.6.
  • CVE-2026-97629، تذاكر جلسات TLS — مع ssl_session_cache shared:… ودون ssl_session_ticket_key، يدوّر nginx مفاتيحه بنفسه؛ وكان أحدها يبقى دون تهيئة، ما يتيح تزوير جلسة، وبحسب F5 تجاوز التحقق من شهادة العميل. النطاق المتأثر: من 1.23.2 إلى 1.31.6.
  • CVE-2026-97205، SSI مع AIO — استخدام بعد التحرير (use-after-free) عندما يكون aio مفعّلًا وتحتوي صفحة SSI على أوامر include virtual. النطاق المتأثر: من 0.8.11 إلى 1.31.6.
  • الخطورة المنشورة — «medium» للخمس على nginx.org. وبحسب سجلات CVE من F5، تبلغ درجة CVSS 3.1 8.1 لكل من CVE-2026-15176 وCVE-2026-93479 وCVE-2026-97205، و6.5 لـ CVE-2026-97629، و5.3 لـ CVE-2026-95101.

الإصدارات المتأثرة والإصدارات المصحَّحة

مرّر الجدول أفقيًا

الثغرة أو الحزمةالإصدارات المتأثرةصُحّحت في
CVE-2026-15176 — alias وrewriteمن 0.1.29 إلى 1.31.61.30.6 و1.31.7
CVE-2026-93479 — السلاسل ذات المتغيراتمن 1.30.0 إلى 1.30.5، ومن 1.31.2 إلى 1.31.61.30.6 و1.31.7
CVE-2026-95101 — HTTP/3من 1.25.0 إلى 1.31.61.30.6 و1.31.7
CVE-2026-97629 — تذاكر TLSمن 1.23.2 إلى 1.31.61.30.6 و1.31.7
CVE-2026-97205 — SSI مع AIOمن 0.8.11 إلى 1.31.61.30.6 و1.31.7
حزمة Debian 13 (trixie)الحزم السابقة لـ `1.26.3-3+deb13u10``1.26.3-3+deb13u10` (DSA-6575-1)
حزمة Debian 12 (bookworm)مصنّفة متأثرة حتى 22 أكتوبر 2026لم تُنشر بعد
حزم Ubuntu«Needs evaluation» حتى 22 أكتوبر 2026لم تُنشر بعد

حزمة التوزيعة أو Docker: رقم الإصدار لا يكفي

هذا هو الاعتراض الأكثر شيوعًا على مجموعة خوادم غير متجانسة: يعرض nginx -v الإصدار 1.26.3 أو 1.22.1، أي أقل بكثير من 1.30.6، ومع ذلك قد يكون الجهاز مصحَّحًا. فالتوزيعات تنقل الإصلاحات الأمنية إلى فرعها الخاص دون تغيير رقم الإصدار الأصلي، ولا يتغير إلا لاحق الحزمة. وقد فعلت Debian ذلك لـ trixie عبر النشرة DSA-6575-1 التي تغطي الثغرات الخمس. وفي المقابل، حتى 22 أكتوبر 2026، كان متتبّع الأمان في Debian لا يزال يصنّف bookworm متأثرًا، وكانت Ubuntu تعرض «Needs evaluation» لكل إصداراتها المتابَعة.

فالتحقق الموثوق الوحيد هو سجل تغييرات الحزمة المثبّتة: zgrep -l CVE-2026-15176 /usr/share/doc/nginx*/changelog.Debian.gz على Debian أو Ubuntu، وrpm -q --changelog nginx | grep CVE-2026-15176 على RHEL أو AlmaLinux أو Rocky. وجود سطر يعني أن الإصلاح نُقل؛ وعدم وجود أي شيء يعني أنه لم يُنقل بعد. أما في Docker فالوسم هو المعيار: الصور الرسمية nginx:1.30.6 وnginx:1.31.7 متاحة على Docker Hub، والصورة المثبّتة على وسم أقدم تبقى متأثرة ما لم تُستبدل.

جرد تعرّض خادم في عشر دقائق

  1. تسجيل الإصدار والمصدر

    يعطي nginx -v إصدار الملف التنفيذي. ومصدر الحزمة هو ما يحدد طريقة التحديث:
    apt-cache policy nginx على Debian أو Ubuntu (مستودع nginx.org أو التوزيعة)
    rpm -qi nginx | grep -E 'Version|Release|Vendor' على RHEL ومشتقاتها
    وإذا كان nginx يعمل داخل حاوية: docker ps | grep -i nginx.

  2. سرد الوحدات المُجمَّعة

    nginx -V 2>&1 | tr ' ' '\n' | grep -E 'http_v3|ssi|threads|file-aio'
    بدون --with-http_v3_module لا تعنيك CVE-2026-95101. أما وحدة SSI فتُجمَّع افتراضيًا، ولا يستبعدها إلا الخيار --without-http_ssi_module.

  3. تصدير الإعدادات الفعلية

    sudo nginx -T > /root/nginx-conf.txt 2>&1
    يختبر nginx -T الإعدادات ويطبعها كاملة بما فيها الملفات المُضمَّنة. استعلم هذا الملف بدل تصفّح /etc/nginx يدويًا: يكفي include منسيّ لتفويت توجيه.

  4. البحث عن alias و$request_filename (CVE-2026-15176)

    grep -nE '^\s*(alias|rewrite)\s' /root/nginx-conf.txt
    grep -n 'request_filename' /root/nginx-conf.txt
    أنت مكشوف إذا جمع location واحد بين alias وrewrite وset أو return يقرأ $request_filename، أو إذا احتوى log_format على هذا المتغيّر.

  5. البحث عن map بتعابير نمطية (CVE-2026-93479)

    grep -nA8 '^\s*map ' /root/nginx-conf.txt
    حدّد المدخلات التي تبدأ بـ ~، ثم ابحث عن $1 و$2 في توجيهات root وlog_format. لا تمسّ هذه الثغرة إلا الفرعين 1.30 و1.31: الخادم على 1.28 أو أقدم غير معنيّ.

  6. التحقق من HTTP/3 (CVE-2026-95101)

    grep -nE 'listen\s.*quic|http3' /root/nginx-conf.txt
    grep -n 'proxy_request_buffering' /root/nginx-conf.txt
    HTTP/3 مفعّل أمام proxy_pass دون proxy_request_buffering off: مكشوف.

  7. التحقق من تذاكر TLS (CVE-2026-97629)

    grep -nE 'ssl_session_cache\s.*shared|ssl_session_ticket_key|ssl_session_tickets' /root/nginx-conf.txt
    مكشوف إذا وُجد shared: دون ssl_session_ticket_key ودون ssl_session_tickets off. ويخص الأثر الذي تصفه F5 أساسًا المواقع التي توثّق عملاءها بالشهادات (ssl_verify_client).

  8. التحقق من SSI وAIO (CVE-2026-97205)

    grep -nE '^\s*(ssi|aio)\s' /root/nginx-conf.txt
    مكشوف إذا انطبق ssi on وaio (بالقيمة on أو threads) على الصفحات نفسها، وكانت تلك الصفحات تحتوي على أوامر include virtual.

بأيّ ترتيب تعالج مجموعة خوادم

بهذه الفحوص الثمانية، يقع كل خادم في واحدة من ثلاث خانات. الخانة الأولى: يوجد شرط تعرّض والخادم يستقبل حركة عامة. يُرقَّع اليوم، أو يتلقى حلًا مؤقتًا خلال ساعة. وتأتي في المقدمة الوكلاء العكسية (reverse proxies) التي تخدم HTTP/3 والمواقع التي توثّق بشهادة العميل، لأن الأثر الموصوف يمسّ الطلب المُمرَّر أو التوثيق نفسه.

الخانة الثانية: لا يوجد أي شرط، لكن الإصدار ضمن النطاق المتأثر. الخطر الفوري منخفض، ويُجدول التحديث خلال الأسبوع. فالإعدادات تتغير، ويكفي alias يضيفه مطوّر غدًا لإعادة فتح CVE-2026-15176.

الخانة الثالثة: إصدار مصحَّح أصلًا، أو حزمة توزيعة يذكر سجل تغييراتها الثغرات. لا شيء يُفعل سوى تسجيل تاريخ الفحص. احتفظ بهذا الجدول لكل عميل: فهو أيضًا الجواب الذي تقدّمه حين يسألك عميل إن كان معنيًّا.

التحديث بيئة تلو الأخرى

  1. مستودع nginx.org على Debian أو Ubuntu

    sudo apt update && sudo apt install --only-upgrade nginx
    بعدها يجب أن يعرض nginx -v الإصدار 1.30.6 على الفرع المستقر، أو 1.31.7 وما بعده على mainline.

  2. مستودع nginx.org على RHEL أو AlmaLinux أو Rocky

    sudo dnf upgrade nginx
    التحقق نفسه عبر nginx -v. وتُشرح طريقة إعداد المستودع للعائلتين في صفحة Linux packages على nginx.org.

  3. حزمة التوزيعة

    على Debian 13، يجب أن يجلب sudo apt update && sudo apt install --only-upgrade nginx الحزمة 1.26.3-3+deb13u10 أو أحدث. وفي غيرها، طبّق التحديثات الأمنية فور صدورها وتحقق من سجل التغييرات كما سبق. وإذا تأخرت توزيعتك، يمكنك الانتقال إلى مستودع nginx.org؛ تأكد أولًا من توفر الوحدات الديناميكية التي تعتمد عليها فيه.

  4. حاويات Docker

    في ملف compose، ثبّت image: nginx:1.30.6 (أو nginx:stable)، ثم:
    docker compose pull && docker compose up -d
    أما الصورة المبنية بـ FROM nginx:… فيُعاد بناؤها: docker compose build --pull && docker compose up -d.

  5. خادم تديره لوحة تحكم أو جهة استضافة

    إذا ثُبّت nginx عبر لوحة إدارة أو من قِبل جهة الاستضافة، فقناة التحديث الخاصة بها هي التي تسلّم الإصلاح. تحقق من nginx -v ومن سجل تغييرات الحزمة بعد تحديثها، وعند الشك، اسأل جهة الاستضافة عن تاريخ تطبيق الإصلاح.

  6. اختبار الإعدادات

    sudo nginx -t
    يجب أن يتضمن الرد syntax is ok وtest is successful. لا تُعِد التشغيل أبدًا دون هذا الاختبار: الإعدادات غير الصالحة تترك الخدمة متوقفة.

  7. استبدال الملف التنفيذي في الذاكرة

    تحديث الحزمة لا يستبدل العملية الرئيسية العاملة. يعرض sudo ls -l /proc/$(cat /run/nginx.pid)/exe العبارة (deleted) ما دام الملف التنفيذي القديم يعمل (عدّل مسار ملف PID حسب نظامك). يسبب sudo systemctl restart nginx انقطاعًا لثوانٍ؛ أما الاستبدال الفوري عبر الإشارة USR2، الموثّق لدى nginx، فيتفادى هذا الانقطاع لكنه يتطلب معرفة جيدة بإعدادات systemd لديك.

  8. التحقق ثم المراقبة

    أعد تشغيل nginx -v وأمر /proc: لم تعد (deleted) تظهر. اختبر موقعًا بـ curl -sI https://your-domain.com. ثم أضف تنبيهًا على إعادة تشغيل عمليات worker، كما في دليلنا المراقبة والتنبيه الاستباقي على VPS.

يتعذر الترقيع اليوم: الحلول المؤقتة التي نشرتها F5

تصف سجلات CVE من F5 حلًا مؤقتًا لكل واحدة من الثغرات الخمس. وهي تزيل شرط التعرّض دون إصلاح الشيفرة: إنها تدابير انتظار.

CVE-2026-15176: عدم استخدام alias في location المعني، أو عدم استخدام $request_filename.
CVE-2026-93479: استبدال الالتقاطات غير المسماة بالتقاطات مسماة من نوع (?<site>…)، وحصر استخدامها في الكتلة التي يُطبَّق فيها التعبير النمطي.
CVE-2026-95101: proxy_request_buffering off;. عندها يُرسل جسم الرفع إلى التطبيق تدفقًا، ما يغيّر سلوكه مع الملفات الكبيرة.
CVE-2026-97629: إزالة ssl_session_cache shared:…، أو تحميل مفاتيح ثابتة عبر ssl_session_ticket_key (ملف يُنشأ بـ openssl rand 80 > /etc/nginx/ticket.key). والخوادم التي تعمل بـ ssl_session_tickets off; غير معنية.
CVE-2026-97205: تعطيل aio، أو التوقف عن تقديم صفحات SSI.

يُتحقق من كل حل مؤقت بـ nginx -t ثم systemctl reload nginx. وتكفي إعادة التحميل هنا لأن الملف التنفيذي لا يتغير.

الرصد: مؤشرات لا أدلة

تترك عملية worker التي تتعطل سطرًا من نوع worker process 12345 exited on signal 11 في سجل الأخطاء. عُدّها بـ grep -c 'exited on signal' /var/log/nginx/error.log وقارن بالأسابيع السابقة. الأعطال المتكررة على خادم مكشوف مؤشر يستحق التحقيق، لا دليل على الاختراق؛ وغيابها ليس دليلًا على السلامة أيضًا. تدبير عام، خارج نشرة الجهة المطوّرة: قيّد في الجدار الناري المضيفات الافتراضية (vhosts) التي لا يلزم أن تكون عامة، كما تفصّل قائمة تحصين خادم VPS بنظام Linux.

استكشاف الأخطاء: ما يظهر بعد التحديث

يعرض nginx -v الإصدار 1.30.6، لكن لم يتغير شيء. الملف التنفيذي على القرص جديد، والعملية الرئيسية هي القديمة. يُظهر ذلك الأمر ls -l /proc/<pid>/exe مع العلامة (deleted). العلاج: إعادة تشغيل الخدمة، أو الاستبدال الفوري بـ USR2.

nginx: [emerg] "/etc/nginx/ticket.key" must be 48 or 80 bytes. ملف مفتاح التذاكر ليس بالحجم الصحيح، وغالبًا لأنه أُنشئ بترميز base64 أو مع سطر جديد في آخره. العلاج: openssl rand 80 > /etc/nginx/ticket.key دون أي خيار ترميز، ثم nginx -t.

nginx is already the newest version. مستودع توزيعتك لا يقدّم حزمة مصحَّحة بعد. العلاج: تطبيق الحلول المؤقتة أعلاه ومتابعة متتبّع الأمان في التوزيعة، أو الانتقال إلى مستودع nginx.org.

الحاوية لا تزال تردّ بالإصدار القديم. سُحبت الصورة، لكن الحاوية لم يُعَد إنشاؤها، أو أن الخدمة تشير إلى وسم مثبّت. العلاج: docker compose up -d --force-recreate، ثم docker compose exec <service> nginx -v.

خمس ثغرات على عشرين خادمًا: عبء الوكالة

بالنسبة إلى الوكالة، هذا الإصلاح ليس أمرًا واحدًا، بل جولة على كل الخوادم. خادم لكل عميل، ومصادر مختلفة (حزمة Debian هنا، ومستودع nginx.org هناك، وصورة Docker في مكان آخر)، وإعدادات كتبها أكثر من شخص. وكل جهاز يتطلب الجرد والتحديث وإعادة التشغيل والتحقق، ثم الرد على العميل القلِق.

الطريقة الأدوم لتقليص هذا العبء هي تقليص عدد خوادم الويب التي تديرها بنفسك. مع استضافة الموزعين من ServOrbit.com، تعمل مواقع عملائك في حسابات cPanel تديرها من WHM، تحت علامتك التجارية: تحتفظ أنت بالعلاقة مع العميل وبأسعارك، ونتولى نحن البنية التحتية. وللأجهزة التي يجب أن تبقى بصلاحيات root، يتوفر خيار الإدارة على خوادم VPS Cloud لدينا. وإن كنت لا تزال تتردد في اختيار الوكيل العكسي لهذه الأجهزة، فإن مقارنتنا بين Caddy وTraefik وnginx تعرض المعايير.

التوثيق الرسمي

nginx.org — أخبار 14 أكتوبر 2026
nginx security advisories
CHANGES-1.30
CVE-2026-15176 · CVE-2026-93479 · CVE-2026-95101 · CVE-2026-97629 · CVE-2026-97205
Debian DSA-6575-1 · Ubuntu CVE-2026-15176
nginx.org — Linux packages · Controlling nginx · ngx_http_ssl_module

خوادم ويب أقل ترقّعها بنفسك

مع استضافة الموزعين من ServOrbit.com، تعمل مواقع عملائك تحت علامتك التجارية، على بنية تحتية نتولاها نحن. تحتفظ أنت بالعلاقة مع العميل وبأسعارك، ونحتفظ نحن بطبقة الخوادم.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـالعربية والفرنسية والإنجليزية.

راسلنا على WhatsAppيُفتح في علامة تبويب جديدة