CVE-2026-94419 in wolfSSLالمعلومات

الملخص

بحسب VulDB • 27/09/2026

بدون تعريف NO_SESSION_CACHE_REF، لا تُرجع الدالة wolfSSL_get_session() كائن جلسة (session object)، بل ترجع مرجع ClientSession على الشكل {row, index, hash(sessionID)} داخل SessionCache الخاص بالعملية بأكملها، وتقوم الدالة ClientSessionToSession() بالتحقق من هذا المرجع مقابل ذلك الهاش فقط. ونظراً لأن معرّف الجلسة في TLS 1.2 يختاره الخادم ويُرسَل بشكل نصي واضح (clear text)، فإن دالة AddSessionToCache() تطابق أي جلسة لخادم آخر تستخدم نفس المعرّف، وتقوم باستبدال الإدخال الخاص بالعميل بسرية رئيسية (master secret) وخوارزمية تشفير (cipher suite) وإصدار من ذلك الخادم الآخر، بينما يستمر المقبض (handle) في الحل. ولا يقارن المسار للكتابة (write path) بين الأقران أو معرّف خادم التطبيق أو WOLFSSL_CTX. وعند استئناف الاتصال عبر هذا المقبض، يتم إنتاج مصافحة مختصرة لا تُرسَل فيها رسالة الشهادة (Certificate message)، وبالتالي لا تعمل عملية التحقق من السلسلة (chain verification) ولا دالة wolfSSL_check_domain_name()، ويتم قبول المهاجم كخادم أصلي طوال مدة ذلك الاتصال.

الإصدارات المتأثرة هي تلك التي تترك كلًا من NO_SESSION_CACHE_REF وNO_SESSION_CACHE وNO_CLIENT_CACHE وTITAN_SESSION_cache غير مُعرَّفة (undefined)، وتشمل هذه التكوينات الإعداد القياسي عبر ./configure، وخيارات --enable-opensslextra و--enable-opensslall. بينما تُعرّف خمسة عشر خيار تكامل NO_SESSION_CACHE_REF وبالتالي فهي ليست متأثرة، ومن بينها: --enable-all, --enable-distro, --enable-curl, --enable-nginx, --enable-haproxy, --enable-stunnel, --enable-wpas وباقي عائلة OPENSSL_COMPATIBLE_DEFAULTS. كما أن الخيارات --enable-leanpsk و--enable-leantls و--enable-lowresource و--enable-tinytls13 تُعطّل ذاكرة التخزين المؤقت (cache) تماماً.

يجب على التطبيق استخدام تدفق المرجع القديم، وهو استدعاء wolfSSL_get_session() أو SSL_get_session() متبوعاً بـ wolfSSL_set_session(). وتُرجع الدالة wolfSSL_get1_session() كائن الجلسة نفسه وهي غير متأثرة، وكذلك عمليات البحث التي تستخدم wolfSSL_SetServerID().

تكون الثغرة قابلة للاستغلال فقط مع TLS 1.2 وما دونها وDTLS 1.2 وما دونها، لأن كلًا من TLS 1.3 واستئناف التذاكر (ticket resumption) باستخدام معرف جلسة فارغ في ServerHello يستخدمان مفتاح ذاكرة تخزين مؤقت يختاره العميل.

يبقى الإدخال المسموم (poisoned entry) في ذاكرة التخزين المؤقت الخاصة بالعملية بأكملها، لذا فهو يعبر حدود WOLFSSL_CTX ويستمر حتى يتم إخراج الإدخال أو انتهاء مهلة الجلسة، وهي 500 ثانية افتراضياً. الإصدارات من v5.3.0 إلى v5.9.2 متأثرة؛ ويضيف الإصلاح عداد توليد لكل عملية كتابة (per-write generation counter) في ذاكرة التخزين المؤقت ويرفع قيمة WOLFSSL_CACHE_VERSION من 2 إلى 3، بحيث يتم رفض أي ذاكرة تخزين مؤقت تم الحفاظ عليها بواسطة إصدار أقدم عند استخدامها مع الإصدار المصحح.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

مسؤول

wolfSSL

حجز

21/09/2026

إفشاء

27/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-410854

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!