
SpookySSL CVE-2022-3602 SSLv3 Scanner لأنظمة Windows وLinux وmacOS
ماسح SpookySSL CVE-2022-3602 SSLv3 لنظام ويندوز ولينكس وماك
أولاً، تظهر المشكلة عند تحديد حجم البايت. عند تحديد حجم البايت، إذا لاحظت، فإن NULL أي القيمة الفارغة/الصفر غير معرّفة، وبالتالي يمكن تحديد طول البايت على أنه صفر. في الأمر أدناه، الجزء الذي يبدأ بـ xn-- يعني التحويل المباشر لأسماء النطاقات المكتوبة بأبجديات مختلفة (مثل تلك المحوّلة من الصينية إلى punycode) إلى الأبجدية اللاتينية. داخل حلقة if، يقوم أمر memcpy بتخصيص مساحة مكدس (stack) بحجم delta + 1 في الذاكرة ويكتب قيمة outptr في هذه المساحة. عند إدخال قيمة NULL، يتم فتح مساحة 1 بايت فقط، لذا فإن رمزي مسافة يؤديان إلى تجاوز سعة المخزن المؤقت (buffer overflow).
للحصول على معلومات مفصلة: https://github.com/openssl/openssl/commit/c42165b5706e42f67ef8ef4c351a9a4c5d21639a
أولاً، يجب أن نعرف تنفيذ التعليمات البرمجية عن بُعد (RCE)
تتيح هجمات تنفيذ التعليمات البرمجية عن بُعد (RCE) للمهاجم تنفيذ تعليمات برمجية خبيثة عن بُعد على جهاز كمبيوتر. يمكن أن يتراوح تأثير ثغرة RCE من تنفيذ برمجيات خبيثة إلى حصول المهاجم على السيطرة الكاملة على جهاز مخترق.
تحدث ثغرة CVE-2022-3602 في OpenSSL بسبب المعالجة غير الصحيحة لـ Punycode أثناء فحص شهادات X.509.
Punycode هو تمثيل لسلاسل Unicode باستخدام المجموعة الفرعية المحدودة من أحرف ASCII. يُستخدم عادةً لتشفير أسماء النطاقات التي تحتوي على أحرف غير ASCII، مثل الحروف اليابانية. السلسلة المشفرة بـ Punycode
تبدأ بـ “xn--” ويليها أحرف إنجليزية وأرقام.
قد تسبب الدالة الضعيفة ossl_punycode_decode تجاوز سعة المخزن المؤقت (buffer overflow) أثناء فك ترميز سلسلة Punycode. يتم استدعاؤها عندما يعالج OpenSSL سلسلة شهادات. لاستغلال الثغرة، يلزم:
1) إنشاء شهادة CA (سلطة التصديق) أو شهادة وسيطة تحتوي على حقل “nameConstraints” بسلسلة Punycode خبيثة. يجب أن تحتوي سلسلة Punycode على 512 بايت على الأقل باستثناء “xn--”.
2) إنشاء شهادة طرفية تحتوي على حقل otherName في SubjectAlternateName (SAN) يحدد سلسلة SmtpUTF8Mailbox
ثغرة رفض الخدمة (DoS)
هجوم رفض الخدمة (DoS) هو هجوم يهدف إلى إيقاف تشغيل جهاز أو شبكة، مما يجعله غير قابل للوصول للمستخدمين المقصودين. تحقق هجمات DoS ذلك عن طريق إغراق الهدف بحركة المرور، أو إرسال معلومات تؤدي إلى تعطله.
تحتوي ثغرة CVE-2022-3602 أيضًا على ثغرة رفض الخدمة مثل ثغرات تجاوز سعة المخزن المؤقت الأخرى. يحدث تجاوز المخزن المؤقت في الدالة الضعيفة ossl_a2ulabel. عندما تواجه هذه الدالة جزءًا من Punycode يتبعه حرف نقطة (“.”)، فإنها تضيف أيضًا “.” إلى مخزن الإخراج حتى لو تجاوز حجمه.
بهذه الطريقة، يمكن للمهاجم تجاوز سعة مخزن الإخراج بأي عدد من أحرف “.”، مما يؤدي إلى تلف المكدس (stack). لا يمكن استخدام هذه الثغرة لتنفيذ التعليمات البرمجية عن بُعد، فقط لرفض الخدمة.
المصدر: https://blog.checkpoint.com/2022/11/01/openssl-vulnerability-cve-2022-3602-remote-code-execution-and-cve-2022-3786-denial-of-service-check-point-research-update/
