Kedro में दुर्भावनापूर्ण लॉगिंग कॉन्फ़िगरेशन के माध्यम से मनमाना कोड निष्पादन
प्लेटफ़ॉर्म
python
कॉम्पोनेन्ट
kedro
ठीक किया गया
1.3.0
### प्रभाव यह एक **CRITICAL रिमोट कोड एग्जीक्यूशन (Remote Code Execution - RCE)** भेद्यता है जो उपयोगकर्ता-नियंत्रित इनपुट के साथ `logging.config.dictConfig()` के असुरक्षित उपयोग के कारण होती है। Kedro, `KEDRO_LOGGING_CONFIG` पर्यावरण चर के माध्यम से लॉगिंग कॉन्फ़िगरेशन फ़ाइल पथ को सेट करने की अनुमति देता है और इसे बिना सत्यापन के लोड करता है। लॉगिंग कॉन्फ़िगरेशन स्कीमा विशेष `()` कुंजी का समर्थन करता है, जो मनमाना कॉल करने योग्य इंस्टेंटिएशन को सक्षम करता है। एक हमलावर एप्लिकेशन स्टार्टअप के दौरान मनमाने सिस्टम कमांड को निष्पादित करने के लिए इसका फायदा उठा सकता है। --- ### पैच भेद्यता को लॉगिंग कॉन्फ़िगरेशन में असुरक्षित `()` फ़ैक्टरी कुंजी को अस्वीकार करने वाले सत्यापन को पेश करके ठीक किया गया है, इससे पहले कि उन्हें `dictConfig()` में पास किया जाए। #### इसमें ठीक किया गया - Kedro 1.3.0 उपयोगकर्ताओं को जल्द से जल्द इस संस्करण में अपग्रेड करना चाहिए। --- ### समाधान यदि अपग्रेड करना तुरंत संभव नहीं है: - अविश्वसनीय इनपुट को `KEDRO_LOGGING_CONFIG` पर्यावरण चर को नियंत्रित करने की अनुमति न दें - लॉगिंग कॉन्फ़िगरेशन फ़ाइलों तक लिखने की पहुंच को प्रतिबंधित करें - बाहरी रूप से आपूर्ति किए गए या गतिशील रूप से उत्पन्न लॉगिंग कॉन्फ़िग से बचें - यह सुनिश्चित करने के लिए लॉगिंग YAML को मैन्युअल रूप से मान्य करें कि इसमें `()` कुंजी नहीं है ये शमन जोखिम को कम करते हैं लेकिन पूरी तरह से समाप्त नहीं करते हैं
कैसे ठीक करें
कोई आधिकारिक पैच उपलब्ध नहीं है। वैकल्पिक समाधान खोजें या अपडेट की निगरानी करें।
अपनी निर्भरताओं की स्वचालित निगरानी करें
जब नई कमज़ोरियाँ आपके प्रोजेक्ट को प्रभावित करें तो अलर्ट पाएं।
मुफ़्त शुरू करें