CVE-2024-5535
SSL_select_next_proto बफ़र ओवररीड
- प्रकाशित
- 27 जून 2024
- अद्यतन
- 12 मई 2026
- सीएनए असाइन करना
- openssl
- साक्ष्य देखे गए
- 5 अग॰ 2026
प्राथमिक सीवीएसएस
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:Hकम · अगले 30 दिन
- प्रतिशत
- 92.6%
- मॉडल दिनांक
- 21 सित॰ 2026
ईपीएसएस एक सांख्यिकीय अनुमान है, कोई निश्चितता या प्रभाव का माप नहीं। इसे सीवीएसएस, केईवी स्थिति, एक्सपोज़र और अपने वातावरण के साथ मिलाएं।
सारांश
Issue summary: OpenSSL API फ़ंक्शन SSL_select_next_proto को खाली समर्थित क्लाइंट प्रोटोकॉल बफर के साथ कॉल करने से क्रैश हो सकता है या मेमोरी सामग्री पीयर को भेजी जा सकती है। Impact summary: बफर ओवररीड के कई संभावित परिणाम हो सकते हैं जैसे अप्रत्याशित एप्लिकेशन व्यवहार या क्रैश। विशेष रूप से, यह समस्या मेमोरी से 255 बाइट्स तक के मनमाने निजी डेटा को पीयर को भेजने का कारण बन सकती है, जिससे गोपनीयता का नुकसान हो सकता है। हालाँकि, केवल वे एप्लिकेशन जो SSL_select_next_proto फ़ंक्शन को 0 लंबाई की समर्थित क्लाइंट प्रोटोकॉल सूची के साथ सीधे कॉल करते हैं, इस समस्या से प्रभावित होते हैं। यह सामान्य रूप से कभी भी एक मान्य परिदृश्य नहीं होगा और आमतौर पर हमलावर के नियंत्रण में नहीं होता, लेकिन कॉल करने वाले एप्लिकेशन में कॉन्फ़िगरेशन या प्रोग्रामिंग त्रुटि के मामले में संयोग से हो सकता है। OpenSSL API फ़ंक्शन SSL_select_next_proto आमतौर पर उन TLS एप्लिकेशन द्वारा उपयोग किया जाता है जो ALPN (Application Layer Protocol Negotiation) या NPN (Next Protocol Negotiation) का समर्थन करते हैं। NPN पुराना है, कभी मानकीकृत नहीं हुआ और ALPN के पक्ष में इसे हटा दिया गया है। हमारा मानना है कि ALPN NPN की तुलना में काफी अधिक व्यापक रूप से तैनात है। SSL_select_next_proto फ़ंक्शन सर्वर से प्रोटोकॉल की एक सूची और क्लाइंट से प्रोटोकॉल की एक सूची स्वीकार करता है और सर्वर सूची में पहला प्रोटोकॉल लौटाता है जो क्लाइंट सूची में भी दिखाई देता है। दोनों सूचियों के बीच कोई ओवरलैप न होने की स्थिति में, यह क्लाइंट सूची में पहला आइटम लौटाता है। दोनों ही मामलों में, यह संकेत देगा कि दोनों सूचियों के बीच ओवरलैप पाया गया या नहीं। उस स्थिति में जहां SSL_select_next_proto को शून्य लंबाई की क्लाइंट सूची के साथ कॉल किया जाता है, यह इस स्थिति को नोटिस करने में विफल रहता है और क्लाइंट सूची पॉइंटर के तुरंत बाद की मेमोरी लौटाता है (और रिपोर्ट करता है कि सूचियों में कोई ओवरलैप नहीं था)। यह फ़ंक्शन आमतौर पर ALPN के लिए सर्वर-साइड एप्लिकेशन कॉलबैक या NPN के लिए क्लाइंट-साइड एप्लिकेशन कॉलबैक से कॉल किया जाता है। ALPN के मामले में, क्लाइंट द्वारा आपूर्ति की गई प्रोटोकॉल की सूची libssl द्वारा कभी भी शून्य लंबाई की नहीं होने की गारंटी दी जाती है। सर्वर प्रोटोकॉल की सूची एप्लिकेशन से आती है और सामान्य रूप से कभी भी शून्य लंबाई की होने की उम्मीद नहीं की जानी चाहिए। इस मामले में, यदि SSL_select_next_proto फ़ंक्शन को अपेक्षित रूप से कॉल किया गया है (क्लाइंट द्वारा आपूर्ति की गई सूची के साथ client/client_len पैरामीटर में पारित किया गया है), तो एप्लिकेशन इस समस्या के प्रति संवेदनशील नहीं होगा। यदि एप्लिकेशन गलती से शून्य लंबाई की सर्वर सूची के साथ कॉन्फ़िगर किया गया है, और गलती से उस शून्य लंबाई की सर्वर सूची को client/client_len पैरामीटर में पारित कर दिया है, और इसके अतिरिक्त "कोई ओवरलैप नहीं" प्रतिक्रिया को सही ढंग से संभालने में विफल रहा है (जो सामान्य रूप से ALPN में हैंडशेक विफलता का परिणाम होगा), तो यह इस समस्या के प्रति संवेदनशील होगा। NPN के मामले में, प्रोटोकॉल क्लाइंट को कोई ओवरलैप न होने पर अवसरवादी रूप से एक प्रोटोकॉल चुनने की अनुमति देता है। OpenSSL इसके समर्थन में कोई ओवरलैप न होने की स्थिति में पहला क्लाइंट प्रोटोकॉल लौटाता है। क्लाइंट प्रोटोकॉल की सूची एप्लिकेशन से आती है और सामान्य रूप से कभी भी शून्य लंबाई की होने की उम्मीद नहीं की जानी चाहिए। हालाँकि, यदि SSL_select_next_proto फ़ंक्शन गलती से client_len 0 के साथ कॉल किया जाता है, तो इसके बजाय एक अमान्य मेमोरी पॉइंटर लौटाया जाएगा। यदि एप्लिकेशन इस आउटपुट को अवसरवादी प्रोटोकॉल के रूप में उपयोग करता है, तो गोपनीयता का नुकसान होगा। इस समस्या को निम्न गंभीरता के रूप में मूल्यांकन किया गया है क्योंकि एप्लिकेशन के संवेदनशील होने की सबसे अधिक संभावना है यदि वे ALPN के बजाय NPN का उपयोग कर रहे हैं - लेकिन NPN व्यापक रूप से उपयोग नहीं किया जाता है। इसके लिए एप्लिकेशन कॉन्फ़िगरेशन या प्रोग्रामिंग त्रुटि की भी आवश्यकता होती है। अंत में, यह समस्या आमतौर पर हमलावर के नियंत्रण में नहीं होगी, जिससे सक्रिय शोषण की संभावना कम हो जाती है। 3.3, 3.2, 3.1 और 3.0 में FIPS मॉड्यूल इस समस्या से प्रभावित नहीं हैं। इस समस्या की कम गंभीरता के कारण, हम इस समय OpenSSL के नए रिलीज़ जारी नहीं कर रहे हैं। फिक्स अगले रिलीज़ में शामिल किया जाएगा जब वे उपलब्ध होंगे।
स्रोत
1PoC - OpenSSL NPN बफर ओवररीड
जिम्मेदारीपूर्ण उपयोग
भेद्यता जानकारी का उपयोग केवल उन प्रणालियों पर करें जिनके मालिक आप हैं या परीक्षण के लिए अधिकृत हैं। किटप्लॉइट सार्वजनिक अनुसंधान मेटाडेटा से लिंक करता है और शोषण कोड या दुर्भावनापूर्ण पेलोड को संग्रहीत नहीं करता है।