
CVE-2023-38545 में curl के SOCKS5 प्रॉक्सी हैंडलिंग में हीप बफर ओवरफ्लो के लिए प्रूफ-ऑफ-कॉन्सेप्ट, जो रेट-लिमिट बफर कमी के माध्यम से शोषण का प्रदर्शन करता है।
यह POC UTsweetyfish द्वारा बनाए गए पिछले POC पर आधारित है, जो इस रिपॉजिटरी में साझा किया गया है: https://github.com/UTsweetyfish/CVE-2023-38545। उस POC के विपरीत, यह कमांडलाइन टूल के लिए है न कि libcurl लाइब्रेरी के लिए, और इसमें Python या संकलन की आवश्यकता नहीं है
यह POC curl SOCKS5 हीप बफर ओवरफ्लो के लिए है, और दिखाता है कि curl कमांड लाइन टूल में रिसीव बफर को कैसे ओवरफ्लो किया जाए। डिफ़ॉल्ट रूप से, curl रिसीव बफर को 100k के आकार के साथ इनिशियलाइज़ करता है, जो इसे CVE-2023-38545 के प्रति असंवेदनशील बनाता है। लेकिन इस बफर के आकार को दर सीमा (--limit-rate) सेट करके कम किया जा सकता है।
POC चलाने के लिए, पहले SSH का उपयोग करके एक स्थानीय SOCKS5 प्रॉक्सी सेट करें (इसके लिए स्थानीय रूप से चल रहे SSH सर्वर की आवश्यकता है):
ssh -fND 10801 localhost
इसके बाद, poc.sh script चलाएं (इसके लिए Netcat (nc) इंस्टॉल होना आवश्यक है):
./poc.sh
बफर ओवरफ्लो को ट्रिगर करने के लिए कई प्रयासों की आवश्यकता हो सकती है। यदि ओवरफ्लो ट्रिगर होता है, तो script एक त्रुटि कोड के साथ बाहर निकल जाएगी, और एक त्रुटि संदेश दिखाई देगा जो इंगित करता है कि निष्पादन को रद्द कर दिया गया है। जब ओवरफ्लो विफल हो जाता है, और curl प्रभावित नहीं होता है, तो एक संदेश दिखाया जाता है जो इंगित करता है कि "AAAA...." नाम का एक होस्ट हल नहीं किया जा सका।
लिंक: