تحديثات nginx 1.26.3 و 1.27.4 لإصلاح ثغرة TLS

تم إصدار الفرع الرئيسي لـ nginx 1.27.4، والذي يتم تطوير ميزات جديدة فيه، بالإضافة إلى الفرع المستقر الموازي لـ nginx 1.26.3، والذي يحتوي فقط على التغييرات المتعلقة بإزالة الأخطاء والثغرات الأمنية الخطيرة. تعمل التحديثات على إصلاح الثغرة الأمنية (CVE-2025-23419) التي تسمح بتجاوز التحقق من شهادات TLS الخاصة بالعميل.

تنشأ هذه الثغرة الأمنية من عدم وجود آلية تحقق مناسبة عند التعامل مع المضيفات الافتراضية المرتبطة بعنوان IP واحد ورقم منفذ واحد، والتي يتم اختيارها أثناء الوصول عبر HTTPS بناءً على اسم النطاق المحدد باستخدام امتداد SNI TLS. في مثل هذه التكوينات، يمكن للمهاجم إعادة استخدام جلسة TLS في سياق مضيف افتراضي مختلف لتجاوز المصادقة باستخدام شهادة TLS الخاصة بالعميل. تظهر هذه المشكلة في التكوينات التي تدعم استئناف جلسة TLS باستخدام "تذكرة جلسة TLS" أو التي تستخدم ذاكرة تخزين مؤقتة لجلسة TLS في الإعدادات. الخادم يستخدم النظام افتراضيًا المصادقة عبر شهادات TLS الخاصة بالعميل. وقد وُجدت هذه الثغرة الأمنية منذ إصدار nginx 1.11.4 عند بنائه باستخدام OpenSSL وتفعيل بروتوكول TLSv1.3.

التغييرات غير المتعلقة بالأمن:

  • تمت إضافة إمكانيات لتقليل استهلاك الموارد وحمل وحدة المعالجة المركزية عند استخدام TLS في التكوينات التي تحتوي على عدد كبير من كتل الخادم والموقع. تسمح التغييرات المضافة، بدلاً من إنشاء سياق SSL منفصل (SSL_CTX في OpenSSL) لكل كتلة تكوين، باستخدام سياق SSL الموجود من الكتلة الأصلية.
  • تم إصلاح المشاكل المتعلقة بمدة تحميل ملفات التكوين الطويلة نتيجة لتكرار تحليل نفس المجموعة شهادات TLSالمفاتيح وقوائم جهات التصديق. تم تسريع عمليات إعادة تحميل الإعدادات من خلال إعادة استخدام كائنات TLS غير المتغيرة، مثل الشهادات والمفاتيح وقوائم إبطال الشهادات (CRLs). تمت إضافة توجيه "ssl_object_cache_inheritable" لتعطيل توريث الكائنات أثناء تحديثات الإعدادات.
  • تمت إضافة ذاكرة تخزين مؤقتة للشهادات والمفاتيح المحملة باستخدام المتغيرات في التوجيهات (على سبيل المثال "ssl_certificate /etc/ssl/$ssl_server_name.crt"). تمت إضافة التوجيهات "ssl_certificate_cache"، و"proxy_ssl_certificate_cache"، و"grpc_ssl_certificate_cache" و"uwsgi_ssl_certificate_cache" لإدارة ذاكرة التخزين المؤقت. تسمح لك التوجيهات المحددة بتكوين الحد الأقصى لحجم ذاكرة التخزين المؤقت، وفترة صلاحية السجلات، والوقت المستغرق لتنظيف السجلات غير المستخدمة. على سبيل المثال: "ssl_certificate_cache max=1000 inactive=20s valid=1m;".
  • تمت إضافة تعليمة "keepalive_min_timeout"، التي تحدد المهلة التي لن يقوم خلالها nginx بإغلاق اتصال الحفاظ على الاتصال مع العميل.
  • تم حل المشكلة المتعلقة بظهور رسائل السجل "فشل مرشح gzip في استخدام الذاكرة المخصصة مسبقًا" عند البناء باستخدام مكتبة zlib-ng.
  • تم إصلاح مشكلة في بناء مكتبة libatomic عند استخدام خيار البناء "--with-libatomic=DIR"
  • تم إصلاح خطأ جعل من المستحيل إنشاء اتصال عبر بروتوكول QUIC عند استخدام 0-RTT.
  • تم التأكد من تجاهل طلبات التفاوض على إصدار QUIC من العملاء.
  • تم حل المشاكل المتعلقة بالبناء على Solaris 10 باستخدام وحدة ngx_http_v3_module.
  • تم إصلاح الأخطاء في تنفيذ HTTP/3.

المصدر: opennet.ru

شراء استضافة موثوقة للمواقع مع حماية DDoS وخوادم VPS VDS 🔥 اشترِ استضافة مواقع ويب موثوقة مع حماية من هجمات DDoS، وخوادم VPS وVDS | ProHoster