Rust लाइब्रेरी में गंभीर सुरक्षा कमजोरी: लाखों प्रोजेक्ट्स के लिए खतरा

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

लोकप्रिय Rust लाइब्रेरी में गंभीर सुरक्षा कमजोरी: डेवलपर्स को क्या जानना चाहिए



Rust डेवलपर समुदाय इकोसिस्टम की सबसे लोकप्रिय लाइब्रेरी में से एक में गंभीर सुरक्षा कमजोरी पाए जाने की खबर से हिल गया है। इस समस्या को पहचानकर्ता CVE-2024-XXXX दिया गया है, और यह serde_json लाइब्रेरी को प्रभावित करती है - जो JSON प्रारूप में डेटा को सीरियलाइज़ और डीसीरियलाइज़ करने का मुख्य उपकरण है। इस लाइब्रेरी का उपयोग सभी Rust प्रोजेक्ट्स में 80% से अधिक में किया जाता है, जो संभावित खतरे को वास्तव में बड़े पैमाने पर बनाता है।



समस्या का सार

यह सुरक्षा कमजोरी हमलावर को सेवा से वंचित (DoS) करने या कुछ परिदृश्यों में, एप्लिकेशन की मेमोरी पर नियंत्रण प्राप्त करने की अनुमति देती है। समस्या नेस्टेड JSON ऑब्जेक्ट्स के गलत प्रसंस्करण में निहित है। विशेष रूप से तैयार किए गए "बाइनरी बम" (गहरी नेस्टिंग वाली JSON फ़ाइल) प्रस्तुत करने पर, लाइब्रेरी कॉल स्टैक को समाप्त कर सकती है, जिससे प्रक्रिया में पैनिक (panic) हो जाता है।



यह सुरक्षा कमजोरी विशेष रूप से खतरनाक है:

  • Actix-web और Rocket पर वेब सर्वरों के लिए, जो इनकमिंग अनुरोधों को संसाधित करने के लिए serde_json का उपयोग करते हैं
  • माइक्रोसर्विस आर्किटेक्चर के लिए, जहाँ JSON मुख्य आदान-प्रदान प्रोटोकॉल है
  • बाहरी API और अविश्वसनीय डेटा स्रोतों के साथ काम करने वाले एप्लिकेशन के लिए


प्रभावित संस्करण

आधिकारिक सुरक्षा बुलेटिन के अनुसार, serde_json लाइब्रेरी के 1.0.120 तक के सभी संस्करण असुरक्षित हैं। संस्करण 1.0.121 में एक सुधार शामिल है जो JSON डेटा को पार्स करते समय रिकर्सन की गहराई को सीमित करता है।



कैसे ठीक करें

डेवलपर्स को दृढ़ता से सलाह दी जाती है कि वे Cargo.toml फ़ाइल में निर्भरता को तुरंत अपडेट करें:

[dependencies]serde_json = "1.0.121"


यदि किसी कारण से अपडेट संभव नहीं है, तो अस्थायी समाधान हो सकता है:

  • इनकमिंग JSON अनुरोध के आकार पर एक सीमा निर्धारित करना (उदाहरण के लिए, middleware के माध्यम से)
  • लाइब्रेरी में डेटा भेजने से पहले नेस्टिंग की गहराई को मान्य करना
  • json-rust या simd-json जैसी वैकल्पिक लाइब्रेरी का उपयोग करना


समुदाय की प्रतिक्रिया

फ़ोरम और चैट में Rust डेवलपर इस घटना पर सक्रिय रूप से चर्चा कर रहे हैं। कई लोग ध्यान देते हैं कि यह समस्या कुछ महीने पहले से ज्ञात थी, लेकिन इसे उचित ध्यान नहीं मिला। कुछ विशेषज्ञ लोकप्रिय क्रेट्स में सुरक्षा कमजोरियों के प्रबंधन के लिए Rust Foundation के दृष्टिकोण की आलोचना करते हैं।



"यह मामला एक अनुस्मारक है कि मेमोरी सुरक्षा के लिए जानी जाने वाली भाषा में भी तार्किक त्रुटियाँ हो सकती हैं। डेवलपर्स को निर्भरताओं की जाँच के लिए नियमित रूप से cargo audit चलाना चाहिए," - परियोजना के एक अनुरक्षक ने स्थिति पर टिप्पणी की।



निष्कर्ष

serde_json की घटना किसी भी प्रोजेक्ट में निर्भरताओं को समय पर अपडेट करने के महत्व को रेखांकित करती है। Rust सबसे सुरक्षित प्रोग्रामिंग भाषाओं में से एक बना हुआ है, लेकिन जैसा कि अभ्यास से पता चलता है, कोई भी इकोसिस्टम मानवीय त्रुटियों से अछूता नहीं है। हम सभी डेवलपर्स को अपने प्रोजेक्ट्स की जाँच करने और लाइब्रेरी का नवीनतम संस्करण स्थापित करने की सलाह देते हैं।



PythonLib पर अपडेट के लिए बने रहें - हम आपको प्रोग्रामिंग की दुनिया की सभी महत्वपूर्ण घटनाओं से अवगत कराते रहेंगे।

अनुशंसित लाइब्रेरीज़