CVE-2021-3712
ASN.1 स्ट्रिंग्स प्रोसेस करते समय रीड बफर ओवररन
- प्रकाशित
- 24 अग॰ 2021
- अद्यतन
- 16 अप्रैल 2026
- सीएनए असाइन करना
- openssl
- साक्ष्य देखे गए
- 8 अग॰ 2026
प्राथमिक सीवीएसएस
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:Hउच्च · अगले 30 दिन
- प्रतिशत
- 98.9%
- मॉडल दिनांक
- 21 सित॰ 2026
ईपीएसएस एक सांख्यिकीय अनुमान है, कोई निश्चितता या प्रभाव का माप नहीं। इसे सीवीएसएस, केईवी स्थिति, एक्सपोज़र और अपने वातावरण के साथ मिलाएं।
सारांश
OpenSSL के भीतर ASN.1 स्ट्रिंग्स को आंतरिक रूप से ASN1_STRING संरचना के रूप में दर्शाया जाता है, जिसमें स्ट्रिंग डेटा को धारण करने वाला एक बफर और बफर लंबाई धारण करने वाला एक फ़ील्ड होता है। यह सामान्य C स्ट्रिंग्स के विपरीत है, जिन्हें स्ट्रिंग डेटा के लिए बफर के रूप में दर्शाया जाता है जो NUL (0) बाइट के साथ समाप्त होती हैं। हालाँकि यह कोई कड़ी आवश्यकता नहीं है, फिर भी OpenSSL के अपने "d2i" फ़ंक्शन (और अन्य समान पार्सिंग फ़ंक्शन) का उपयोग करके पार्स की गई ASN.1 स्ट्रिंग्स, साथ ही कोई भी स्ट्रिंग जिसका मान ASN1_STRING_set() फ़ंक्शन के साथ सेट किया गया है, ASN1_STRING संरचना में बाइट सरणी को अतिरिक्त रूप से NUL द्वारा समाप्त करेगी। हालाँकि, अनुप्रयोगों के लिए यह संभव है कि वे ASN1_STRING सरणी में "data" और "length" फ़ील्ड को सीधे सेट करके वैध ASN1_STRING संरचनाएँ बनाएँ जो बाइट सरणी को NUL समाप्त नहीं करती हैं। यह ASN1_STRING_set0() फ़ंक्शन का उपयोग करके भी हो सकता है। कई OpenSSL फ़ंक्शन जो ASN.1 डेटा प्रिंट करते हैं, यह मानते हुए पाए गए हैं कि ASN1_STRING बाइट सरणी NUL समाप्त होगी, भले ही यह सीधे निर्मित स्ट्रिंग्स के लिए गारंटीकृत न हो। जहाँ कोई अनुप्रयोग किसी ASN.1 संरचना को प्रिंट करने का अनुरोध करता है, और जहाँ उस ASN.1 संरचना में ASN1_STRING शामिल हैं जिन्हें अनुप्रयोग द्वारा "data" फ़ील्ड को NUL समाप्त किए बिना सीधे निर्मित किया गया है, वहाँ रीड बफर ओवररन हो सकता है। यही बात प्रमाणपत्रों के नाम बाधाओं (name constraints) के प्रसंस्करण के दौरान भी हो सकती है (उदाहरण के लिए यदि कोई प्रमाणपत्र OpenSSL पार्सिंग फ़ंक्शन के माध्यम से लोड करने के बजाय अनुप्रयोग द्वारा सीधे निर्मित किया गया है, और प्रमाणपत्र में गैर-NUL समाप्त ASN1_STRING संरचनाएँ हैं)। यह X509_get1_email(), X509_REQ_get1_email() और X509_get1_ocsp() फ़ंक्शन में भी हो सकता है। यदि कोई दुर्भावनापूर्ण अभिनेता किसी अनुप्रयोग को सीधे ASN1_STRING निर्मित करने और फिर उसे प्रभावित OpenSSL फ़ंक्शन में से किसी एक के माध्यम से संसाधित करने के लिए प्रेरित कर सकता है, तो यह समस्या उत्पन्न हो सकती है। इसके परिणामस्वरूप क्रैश हो सकता है (जो सेवा से वंचित (Denial of Service) हमले का कारण बन सकता है)। इसके परिणामस्वरूप निजी मेमोरी सामग्री (जैसे निजी कुंजी, या संवेदनशील प्लेनटेक्स्ट) का खुलासा भी हो सकता है। OpenSSL 1.1.1l में ठीक किया गया (प्रभावित 1.1.1-1.1.1k)। OpenSSL 1.0.2za में ठीक किया गया (प्रभावित 1.0.2-1.0.2y)।
स्रोत
1जिम्मेदारीपूर्ण उपयोग
भेद्यता जानकारी का उपयोग केवल उन प्रणालियों पर करें जिनके मालिक आप हैं या परीक्षण के लिए अधिकृत हैं। किटप्लॉइट सार्वजनिक अनुसंधान मेटाडेटा से लिंक करता है और शोषण कोड या दुर्भावनापूर्ण पेलोड को संग्रहीत नहीं करता है।