
इस रिपॉज़िटरी में CVE-2024-48208 के लिए PoC के विकास से संबंधित सारा कार्य शामिल है, और यह भी कि कैसे एक साधारण OOB (सीमा-बाह्य) पठन जेल एस्केप के साथ-साथ टूटे हुए अभिगम नियंत्रण का कारण बन सकता है।
इस रिपॉजिटरी में सभी कार्य शामिल हैं जो एक साधारण OOB (आउट-ऑफ-बाउंड) रीड के कारण जेल एस्केप और एक्सेस कंट्रोल भंग होने के लिए PoC के विकास के आसपास हैं।
मूल CVE विवरण इस प्रकार है:

आधिकारिक रिपॉजिटरी पर Github PR में विस्तार से बताया गया है कि ls.c फ़ाइल में domlsd() फ़ंक्शन कैसे OOB रीड कमजोरी के लिए संवेदनशील है, क्योंकि बेस पॉइंटर की अनियंत्रित वृद्धि होती है, जिससे पॉइंटर cmd बफर के बाहर किसी बफर की ओर इशारा कर सकता है, जैसा कि पंक्ति संख्या 1053 और 1054 पर देखा जा सकता है।

GDB में बफर को डीबग करते समय, हमने देखा कि OOB रीड उपयोगकर्ता को replybuf नामक किसी चीज़ में ले जा रहा था।
आगे के विश्लेषण पर, हमने पाया कि replybuf एक बफर है जो सर्वर द्वारा क्लाइंट को प्रदान की गई प्रतिक्रिया से भरा जाता है। replybuf को ftpd.c फ़ाइल में परिभाषित किया गया है, जैसा कि नीचे दिखाया गया है:

संक्षेप में:
base को replybuf के एक हिस्से की ओर इंगित करता है।replybuf में क्लाइंट को दी गई प्रतिक्रिया शामिल होती है।अब, मूल Github PR में CVE लेखक ने इस बात पर विचार/प्रदर्शन नहीं किया है कि क्या होगा यदि ls.c:1055 में निम्नलिखित स्थिति सत्य लौटाती है?

हमने इस पर विचार करना शुरू किया, और यह पता चला कि यदि कोई हमलावर chdir(base) को सत्य लौटने के लिए मजबूर कर सकता है, तो domlsd() फ़ंक्शन फ़ाइल को सूचीबद्ध करने के लिए आगे बढ़ता है।
टीम ने उन परिदृश्यों पर विचार किया, जो VMsetup.txt में प्रदान किए गए हैं, जो sysadmins द्वारा प्रतिबंधित वातावरण स्थापित करने के बारे में हैं, और एक शोषण बनाने का निर्णय लिया, जो इस प्रकार काम करेगा:
प्रतिबंधित उपयोगकर्ता कमजोर FTP सर्वर से कनेक्ट होगा, और अपने क्रेडेंशियल्स के साथ लॉगिन करेगा।
nc <server-ip> <ftp-port>
USER <username>
PASS <password>
उपयोगकर्ता फिर EPSV मोड में प्रवेश करेगा।
EPSV
उपयोगकर्ता लौटाए गए पोर्ट नंबर को नोट कर लेगा, क्योंकि उन्हें सूचीबद्ध परिणामों को पढ़ने के लिए उससे कनेक्ट करना होगा।
उपयोगकर्ता अब एक लिंक फ़ाइल (बफर ऑफ़सेट पर निर्भर करती है जिसे प्राप्त अंतिम प्रतिक्रिया के अनुसार आसानी से स्वचालित किया जा सकता है) बना सकता है जो उस निर्देशिका की ओर इंगित करता है जिससे वे फ़ाइलों को सूचीबद्ध करना चाहते हैं।
उपयोगकर्ता दुर्भावनापूर्ण कमांड भेजता है (चयनित ऑफ़सेट पर निर्भर करता है)।
MLSD -........<cmd बफर को ओवरफ्लो करने के लिए 4096 से अधिक>
उपयोगकर्ता फिर सूचीबद्ध परिणामों को पढ़ने के लिए पहले नोट किए गए पोर्ट नंबर पर एक और कनेक्शन स्थापित कर सकता है।
हमने एक स्वचालित शोषण स्क्रिप्ट pure.py विकसित की है जो समान चरणों को निष्पादित करती है, और यह अन्य स्क्रिप्ट्स पर आधारित है जो हमने परीक्षण के लिए विकसित की थीं, जो dev_files निर्देशिका में पाई जा सकती हैं।
कमजोरी को पुन: उत्पन्न करने के लिए आप VMsetup.txt पर वर्चुअल मशीन सेटअप के लिए चरण-दर-चरण मार्गदर्शिका का पालन कर सकते हैं।
कमजोर इंस्टेंस का डॉकर कंटेनर बनाने के लिए आप Dockersetup.txt का संदर्भ ले सकते हैं।