
SpookySSL CVE-2022-3602 SSLv3 स्कैनर Windows, Linux, macOS के लिए
SpookySSL CVE-2022-3602 SSLv3 Scanner विंडोज, लिनक्स, मैकओएस के लिए
Öncelikle sorun byte boyutunu belirlerken ortaya çıkıyor. Bayt boyutunu belirlerken farkındaysanız NULL yani boş/sıfır değer tanımlanmamış yani bayt uzunluğu sıfır olarak belirlenebiliyor. Alttaki komutta xn-- ile başlayan kısım direkt olarak farklı alfabelerde (örneğin Çinceden punycode olarak dönüştürülen) yazılmış alfabedeki domain adlarının latin alfabesine dönüştürülmesi anlamına geliyor. If döngüsü içerisinde memcpy komutu delta + 1 değerlik bir stack alanını memory üzerinde ayırıyor ve outptr değerini bu alana yazıyor. NULL değer girildiğinde ise 1 baytlık yer açıldığı için iki adet boşluk kodu bir buffer overflow yaratıyor.
Ayrıntılı bilgi için : https://github.com/openssl/openssl/commit/c42165b5706e42f67ef8ef4c351a9a4c5d21639a
सबसे पहले, हमें Remote code execution (RCE) के बारे में पता होना चाहिए।
Remote code execution (RCE) हमले एक हमलावर को कंप्यूटर पर दूर से दुर्भावनापूर्ण कोड निष्पादित करने की अनुमति देते हैं। RCE भेद्यता का प्रभाव मैलवेयर निष्पादन से लेकर हमलावर द्वारा संक्रमित मशीन पर पूर्ण नियंत्रण प्राप्त करने तक हो सकता है।
OpenSSL में CVE-2022-3602 भेद्यता X.509 प्रमाणपत्रों की जाँच करते समय Punycode के गलत प्रसंस्करण के कारण उत्पन्न होती है।
Punycode सीमित ASCII वर्ण उपसमूह का उपयोग करके Unicode स्ट्रिंग्स का एक प्रतिनिधित्व है। इसका उपयोग आमतौर पर गैर-ASCII वर्णों वाले डोमेन नामों को एन्कोड करने के लिए किया जाता है, उदाहरण के लिए जापानी अक्षर। Punycode-एन्कोडेड स्ट्रिंग
“xn--” से शुरू होती है और उसके बाद अंग्रेजी वर्ण और अंक होते हैं।
संवेदनशील फ़ंक्शन ossl_punycode_decode Punycode स्ट्रिंग डिकोडिंग के दौरान buffer overflow का कारण बन सकता है। जब OpenSSL एक प्रमाणपत्र श्रृंखला संसाधित करता है तो इसे कॉल किया जाता है। भेद्यता का शोषण करने के लिए निम्नलिखित आवश्यक है:
1) एक CA (प्रमाणपत्र प्राधिकरण) प्रमाणपत्र या मध्यस्थ प्रमाणपत्र तैयार करें जिसमें “nameConstraints” फ़ील्ड एक दुर्भावनापूर्ण Punycode स्ट्रिंग के साथ हो। Punycode स्ट्रिंग में “xn--” को छोड़कर कम से कम 512 बाइट्स होने चाहिए।
2) एक लीफ प्रमाणपत्र तैयार करें जिसमें SubjectAlternateName (SAN) otherName फ़ील्ड एक SmtpUTF8Mailbox स्ट्रिंग निर्दिष्ट करता है
Denial of Service (DoS) भेद्यता
Denial-of-Service (DoS) हमला एक ऐसा हमला है जिसका उद्देश्य किसी मशीन या नेटवर्क को बंद करना है, जिससे यह अपने इच्छित उपयोगकर्ताओं के लिए दुर्गम हो जाता है। DoS हमले लक्ष्य पर ट्रैफ़िक भरकर या उसे ऐसी जानकारी भेजकर ऐसा करते हैं जो क्रैश को ट्रिगर करती है।
CVE-2022-3602 भेद्यता में अन्य buffer overflow भेद्यताओं की तरह Denial of Service भेद्यता भी है। Buffer overflow संवेदनशील फ़ंक्शन ossl_a2ulabel में होता है। जब यह फ़ंक्शन एक डॉट वर्ण (“.”) के बाद Punycode भाग से मिलता है, तो यह आउटपुट बफर में “.” भी जोड़ता है, भले ही यह उसके आकार को ओवरफ्लो कर दे।
इस तरह, एक हमलावर किसी भी संख्या में “.” वर्णों द्वारा आउटपुट बफर को ओवरफ्लो कर सकता है, जिससे स्टैक दूषित हो जाता है। इस भेद्यता का उपयोग रिमोट कोड निष्पादन के लिए नहीं किया जा सकता है, केवल सेवा से इनकार के लिए किया जा सकता है।
स्रोत : 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/
