
CVE 2022-45299
#प्रभावित लाइब्रेरी :
webbrowser.rs संस्करण 0.8.3 से पहले https://github.com/amodm/webbrowser-rs
#सारांश:
लाइब्रेरी यह सत्यापित करने में विफल रहती है कि प्रदान किया गया इनपुट वास्तव में एक URL है। इसलिए, webbrowser::open(URL) को पारित किए गए अनफ़िल्टर्ड URL पर नियंत्रण रखने वाला हमलावर एक स्थानीय फ़ाइल पथ प्रदान कर सकता है, जो डिफ़ॉल्ट एक्सप्लोरर में खोला जाएगा, या अंतर्निहित open कमांड को एक तर्क पारित कर सकता है ताकि मनमाने पंजीकृत सिस्टम कमांड निष्पादित किए जा सकें।
#विवरण:
webbrowser::open आंतरिक रूप से shellExecuteW को कॉल करता है, जो Windows के लिए open को तर्क के रूप में URL पारित करता है। Windows पर, हमलावर shellExecuteW के lpFile तर्क को नियंत्रित करता है, जो मनमानी स्थानीय फ़ाइलों को खोलने की अनुमति दे सकता है। यदि कोई हमलावर एक ऐसा URL पारित करने में सफल हो जाता है जो वास्तव में open के लिए एक कमांड लाइन स्विच है, तो वे मनमाने कमांड लॉन्च कर सकते हैं (या जो भी open उन्हें एक तर्क के साथ करने की अनुमति देता है, वह कर सकते हैं)। उदाहरण के लिए, webbrowser::open(".") वर्तमान कार्यशील निर्देशिका में Finder खोलेगा। इसके अलावा, आप केवल स्क्रिप्ट का पथ प्रदान करके python स्क्रिप्ट निष्पादित कर सकते हैं, और मैं किसी भी अन्य संकलित या स्क्रिप्टिंग भाषा के साथ ऐसा करने में सफल रहा। मैं Linux पर इस समस्या को पुन: उत्पन्न नहीं कर सका, लेकिन /etc/passwd जैसी स्थानीय फ़ाइलें केवल फ़ाइल का पथ प्रदान करके लोड की जा सकती हैं।
#भेद्य कोड:

#POC:
