
SCN-IP100.03 और SCN-IP000.03 (MDT द्वारा निर्मित) के फर्मवेयर v3.0.3 में DoS भेद्यता CVE-2021-37740 के लिए PoC। यह बग फर्मवेयर v3.0.4 में ठीक कर दिया गया है।
CVE-2021-37740 एक डिनायल ऑफ सर्विस (DoS) भेद्यता है जो MDT द्वारा निर्मित KNXnet/IP Secure राउटर SCN-IP100.03 और इंटरफ़ेस SCN-IP000.03 के फ़र्मवेयर v3.0.3 को प्रभावित करती है। विशेष रूप से तैयार किया गया KNXnet/IP Secure फ़्रेम डिवाइस को आगे के अनुरोधों के प्रति अनुत्तरदायी बना देता है, जिससे सामान्य संचालन बहाल करने के लिए रीबूट की आवश्यकता होती है। इस रिपॉजिटरी में एक प्रूफ ऑफ कॉन्सेप्ट है जो दर्शाता है कि बग को कैसे ट्रिगर किया जा सकता है, जिसे मूल रूप से समन्वित भेद्यता प्रकटीकरण के लिए विकसित किया गया था।
एक प्रतिद्वंद्वी लक्षित डिवाइस के साथ TCP कनेक्शन स्थापित करके, उसके बाद संशोधित कुल लंबाई फ़ील्ड वाला SESSION_REQUEST फ़्रेम भेजकर इस भेद्यता का शोषण कर सकता है, जिसमें 0x0259 या उससे अधिक मान होता है।
इस भेद्यता से प्रभावित डिवाइस किसी भी कनेक्शन में KNXnet/IP Secure फ़्रेम का जवाब नहीं देंगे। SESSION_REQUEST, KNXnet/IP Secure यूनिकास्ट प्रोटोकॉल के हैंडशेक के दौरान भेजा जाने वाला पहला फ़्रेम है, जैसा कि ISO 22510:2019 द्वारा निर्दिष्ट किया गया है।
इसकी निश्चित लंबाई 46 बाइट्स होनी चाहिए। मानक के अनुसार, भिन्न लंबाई वाले फ़्रेमों को खारिज कर दिया जाना चाहिए।
इस रिपॉजिटरी में दिए गए स्क्रिप्ट्स के लिए Python 3 आवश्यक है। healthcheck.py यह जाँचने के लिए है कि डिवाइस अभी भी प्रतिक्रियाशील है या नहीं।
यह लक्षित डिवाइस के साथ TCP कनेक्शन स्थापित करता है और KNXnet/IP Secure यूनिकास्ट हैंडशेक शुरू करने का प्रयास करता है।
यदि डिवाइस उत्तर भेजता है, तो उसे hex प्रारूप में stdout पर प्रिंट किया जाएगा।
poc.py अमान्य SESSION_REQUEST फ़्रेम भेजकर DoS भेद्यता को ट्रिगर करने का प्रयास करता है। यदि कोई डिवाइस कमजोर है, तो healthcheck.py के बाद के निष्पादन से कोई उत्तर नहीं मिलेगा, जब तक कि लक्षित डिवाइस को रीबूट न किया जाए।
स्क्रिप्ट्स को निम्नलिखित कमांड्स के साथ निष्पादित किया जा सकता है, जहाँ <insert IP address> को वास्तविक IP पते (जैसे 192.168.2.137) से बदलना होगा।
python3 healthcheck.py -t <insert IP address>
python3 poc.py -t <insert IP address>
Windows पर Python का उपनाम python3 से python में बदलना पड़ सकता है। यदि लक्षित डिवाइस नियंत्रण एंडपॉइंट को 3671 के अलावा किसी अन्य पोर्ट पर लागू करता है, तो स्क्रिप्ट में पोर्ट को तदनुसार समायोजित करना होगा।
यह भेद्यता फ़र्मवेयर v3.0.4 में ठीक कर दी गई थी, जैसा कि MDT फ़र्मवेयर के परिवर्तन लॉग में प्रलेखित है। सबसे हालिया फ़र्मवेयर स्थापित करने से यह समस्या दूर हो जाती है। फ़र्मवेयर अपडेट के निर्देश और .hex फ़ाइल MDT की वेबसाइट पर उपलब्ध हैं।
प्रूफ ऑफ कॉन्सेप्ट MIT लाइसेंस के अंतर्गत वितरित किया गया है।
डाउनलोड:
परिवर्तन: