
CVE-2023-1177 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो MLflow में एक पाथ ट्रैवर्सल भेद्यता है, जो क्राफ्टेड मॉडल नामों के माध्यम से अनधिकृत फ़ाइल एक्सेस का प्रदर्शन करता है।
MLflow एक ओपन-सोर्स प्लेटफ़ॉर्म है जो एंड-टू-एंड मशीन लर्निंग जीवनचक्र के प्रबंधन के लिए है।
प्राथमिक कार्य:
MLflow चार प्राथमिक कार्यों को संभालता है:
पैरामीटर और परिणामों को रिकॉर्ड करने और तुलना करने के लिए प्रयोगों को ट्रैक करना (MLflow Tracking)।
ML कोड को पुन: प्रयोज्य, प्रतिलिपि योग्य रूप में पैकेज करना ताकि अन्य डेटा वैज्ञानिकों के साथ साझा किया जा सके या प्रोडक्शन में स्थानांतरित किया जा सके (MLflow Projects)।
विभिन्न ML लाइब्रेरीज़ के मॉडल को विभिन्न मॉडल सर्विंग और इन्फ़रेंस प्लेटफ़ॉर्म पर प्रबंधित और तैनात करना (MLflow Models)।
MLflow Model के पूर्ण जीवनचक्र को सहयोगात्मक रूप से प्रबंधित करने के लिए एक केंद्रीय मॉडल स्टोर प्रदान करना, जिसमें मॉडल संस्करण, स्टेज ट्रांज़िशन और एनोटेशन शामिल हैं (MLflow Model Registry)।
लाइब्रेरी-एग्नोस्टिक: MLflow लाइब्रेरी-एग्नोस्टिक है, जिसका अर्थ है कि इसे किसी भी मशीन लर्निंग लाइब्रेरी और किसी भी प्रोग्रामिंग भाषा में उपयोग किया जा सकता है क्योंकि सभी फ़ंक्शन REST API और CLI के माध्यम से सुलभ हैं।
API: प्रोजेक्ट में सुविधा के लिए Python API, R API और Java API शामिल हैं।
स्रोत: https://mlflow.org/docs/latest/index.html
MLflow में एक पाथ ट्रैवर्सल भेद्यता पाई गई थी। पाथ ट्रैवर्सल एक प्रकार की वेब भेद्यता है जो हमलावर को इच्छित निर्देशिका के बाहर संग्रहीत फ़ाइलों और निर्देशिकाओं तक पहुंचने की अनुमति देती है। हमलावर इस भेद्यता का फायदा उठाने और संवेदनशील डेटा तक अनधिकृत पहुंच प्राप्त करने या मनमाना कोड निष्पादित करने के लिए विभिन्न तकनीकों का उपयोग करते हैं। पाथ ट्रैवर्सल हमलों को इनपुट सत्यापन और एक्सेस नियंत्रण उपायों द्वारा रोका जा सकता है।
यह भेद्यता Dan McInerney द्वारा खोजी गई है।
[CVE-2023-1177]
GitHub रिपॉज़िटरी mlflow/mlflow में 2.2.1 से पहले पाथ ट्रैवर्सल: '..\filename'।
मैंने एक छोटी Python स्क्रिप्ट बनाई है जिसका उपयोग भेद्यता का परीक्षण और शोषण करने के लिए किया जा सकता है।
यह मॉडल नाम के लिए एक अद्वितीय ID बनाएगा और फिर सभी URL को क्रमिक रूप से एक्सेस करेगा।
