
CVE-2022-42889 Text4Shell के लिए सेटअप और एक्सप्लॉइट पुनर्निर्माण।
पूर्ण एक्सप्लॉइट सेटअप और पुनर्निर्माण रिपोर्ट के लिए कृपया CVE-2022-42889-Project Vulnerability Exploitation Report फ़ाइल देखें। एक्सप्लॉइट को बनाने और चलाने के लिए उपयोग किया गया VM इस रिपॉज़िटरी में शामिल नहीं है।
CVE-2022-42889 Text4Shell के लिए सेटअप और एक्सप्लॉइट पुनर्निर्माण।
CVE-2022-42889, जिसे "Text4Shell" के नाम से भी जाना जाता है, Apache Commons Text लाइब्रेरी में एक गंभीर कमज़ोरी थी। यह लाइब्रेरी Java अनुप्रयोगों में टेक्स्ट प्रोसेसिंग और मानक Java Development Kit (JDK) की टेक्स्ट हैंडलिंग में अतिरिक्त सुविधाएँ प्रदान करने के लिए अक्सर उपयोग की जाती है। Apache Common Text लाइब्रेरी के 2018 से प्रचलित संस्करण, विशेष रूप से Apache Common Text लाइब्रेरी के 1.5 से 1.9 संस्करण, प्रभावित बताए गए थे। यह कमज़ोरी StringSubstitutor क्लास के भीतर असुरक्षित इनपुट हैंडलिंग के कारण उत्पन्न होती है, जो हमलावरों को लाइब्रेरी की स्ट्रिंग इंटरपोलेशन सुविधाओं का शोषण करने में सक्षम बनाती है। इसके परिणामस्वरूप दुर्भावनापूर्ण रूप से तैयार किए गए इनपुट को संसाधित करते समय रिमोट कोड एक्ज़ीक्यूशन (RCE) हो सकता है, जो इस लाइब्रेरी पर निर्भर अनुप्रयोगों के लिए महत्वपूर्ण जोखिम पैदा करता है। इसलिए, CVE-2022-42889 को एक गंभीर कमज़ोरी माना गया और इसे CVSS 3.x बेस स्कोर 9.8 दिया गया, क्योंकि इसका प्रभावित प्रणालियों पर गंभीर प्रभाव पड़ सकता था, जिसमें पूर्ण सिस्टम समझौता भी शामिल है।
इस कमज़ोरी की तुलना कुख्यात Log4Shell (CVE-2021-44228) और Spring4Shell (CVE-2022-22965) कमज़ोरियों से की गई है, क्योंकि इसमें Java आधारित अनुप्रयोगों में शोषण किए जाने की क्षमता है। Log4Shell और Spring4Shell के विपरीत, जो सबसे बुनियादी उपयोग-मामलों में भी कमज़ोर थीं, Apache Common Text लाइब्रेरी के सभी उपयोगकर्ता प्रभावित नहीं होंगे, क्योंकि लाइब्रेरी का उपयोग एक निश्चित तरीके से किया जाना चाहिए ताकि आक्रमण की सतह उजागर हो और कमज़ोरी का शोषण संभव हो सके।
शोषण प्रदर्शन cyberhack255 के GitHub प्रूफ ऑफ कॉन्सेप्ट का उपयोग करता है, जो एक्सप्लॉइट चलाने के लिए आवश्यक सभी स्क्रिप्ट और टूल प्रदान करता है। नीचे शोषण की प्रक्रिया का संक्षिप्त विवरण दिया गया है:
प्रदर्शन एक Dockerfile का उपयोग करता है जो एक फैट JAR फ़ाइल (text4shell-poc.jar) के रूप में पैकेज किए गए Java अनुप्रयोग को चलाने के लिए डॉकर कंटेनर सेट करता है। यह Alpine Linux पर आधारित आधिकारिक OpenJDK 8 रनटाइम छवि का उपयोग करता है, जो एक न्यूनतम और हल्का वातावरण प्रदान करता है। यह फ़ाइल प्रदर्शन के दौरान बैश स्क्रिप्टिंग सक्षम करने के लिए bash स्थापित करती है। एक्सप्लॉइट चलाते समय कंटेनर तक बाहरी पहुँच की अनुमति देने के लिए पोर्ट 8080 को एक्सपोज़ किया गया है।
यह PoC Apache Commons Text लाइब्रेरी में स्ट्रिंग सब्स्टीट्यूशन तंत्र का शोषण करने वाला एक दुर्भावनापूर्ण पेलोड तैयार करने पर केंद्रित है। पेलोड StringSubstitutor.createInterpolator() विधि को लागू करके lookup कुंजी स्क्रिप्ट को लक्षित करेगा। इस डेमो के लिए, पेलोड डॉकर के अंदर दूरस्थ रूप से एक नई फ़ाइल बनाएगा।