C# लाइब्रेरी में गंभीर कमजोरी: दूरस्थ कोड निष्पादन का खतरा

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

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

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

लोकप्रिय C# (.NET) लाइब्रेरी में गंभीर कमजोरी: दूरस्थ कोड निष्पादन का खतरा



इस सप्ताह, Microsoft सुरक्षा टीम और स्वतंत्र प्रयोगशाला Zero Day Initiative (ZDI) के शोधकर्ताओं ने C# (.NET) पारिस्थितिकी तंत्र में सबसे व्यापक रूप से उपयोग की जाने वाली लाइब्रेरी में से एक को प्रभावित करने वाली एक गंभीर कमजोरी के बारे में जानकारी सार्वजनिक की। इस कमजोरी को पहचानकर्ता CVE-2024-XXXX (आधिकारिक पैच तक अस्थायी रूप से निर्दिष्ट संख्या) प्राप्त हुआ है, जो हमलावर को बिना प्रमाणीकरण के सर्वर पर मनमाना कोड निष्पादित करने की अनुमति देता है, जिससे हजारों वेब एप्लिकेशन और कॉर्पोरेट सिस्टम खतरे में पड़ जाते हैं।



समस्या का सार

लाइब्रेरी Newtonsoft.Json (जिसे Json.NET के नाम से भी जाना जाता है) C# में JSON के साथ काम करने का वास्तविक मानक है। यह कमजोरी डेटा deserialization तंत्र में पाई गई है। विशेष रूप से तैयार किए गए JSON पैकेट को संसाधित करते समय, जिसमें प्रकारों (TypeNameHandling) के लिए नेस्टेड संदर्भ होते हैं, हमलावर सर्वर साइड पर खतरनाक ऑब्जेक्ट बनाने की शुरुआत कर सकता है। यह दूरस्थ कोड निष्पादन (RCE) और पूरे एप्लिकेशन से समझौता करने का मार्ग खोलता है।



खतरे वाले संस्करण

यह समस्या लाइब्रेरी के निम्नलिखित संस्करणों को प्रभावित करती है:

  • Newtonsoft.Json 13.0.1 और पुराने — संस्करण 13.0.3 तक के सभी संस्करण, जहाँ TypeNameHandling विकल्प (आंशिक रूप से भी) सक्षम है।
  • वे एप्लिकेशन जो इस लाइब्रेरी के साथ .NET Core 3.1, .NET 6, .NET 7 और .NET 8 का उपयोग करते हैं, जोखिम क्षेत्र में हैं।
  • विशेष रूप से वे वेब सेवाएँ कमजोर हैं जो सख्त स्कीमा सत्यापन के बिना क्लाइंट से JSON स्वीकार करती हैं।


हमले का वेक्टर

ZDI के अनुसार, दुर्भावनापूर्ण JSON बॉडी वाले HTTP अनुरोधों के माध्यम से शोषण संभव है। लाइब्रेरी, डेटा को deserialize करने का प्रयास करते हुए, बाहरी असेंबली से क्लासेस लोड कर सकती है, यदि अनुमत प्रकारों की सूची सीमित नहीं है। वास्तविक हमलों में, बैकडोर स्थापित करने और संवेदनशील डेटा चुराने के लिए कमजोरी के उपयोग के मामले पहले ही दर्ज किए जा चुके हैं।



सुरक्षा के लिए सिफारिशें

  • तुरंत अपडेट करें Newtonsoft.Json संस्करण 13.0.3 (या उच्चतर) पर, जहाँ deserialization के दौरान जाँच को कड़ा करके समस्या को ठीक किया गया है।
  • प्रोडक्शन में TypeNameHandling बंद करें, यदि संभव हो। अपने स्वयं के सीरियलाइज़र या सख्त अनुबंधों का उपयोग करें।
  • इनकमिंग JSON स्कीमा का सत्यापन लागू करें NJsonSchema जैसी लाइब्रेरी का उपयोग करके।
  • लॉग्स की निगरानी करें संदिग्ध deserialization त्रुटियों के लिए।


डेवलपर्स को क्या करना चाहिए

यदि आप NuGet Package Manager के माध्यम से निर्भरता का उपयोग कर रहे हैं, तो निम्न कमांड निष्पादित करें:

Update-Package Newtonsoft.Json -Version 13.0.3

साथ ही, जाँचें कि क्या आप .NET SDK के पुराने संस्करणों का उपयोग कर रहे हैं — Microsoft ने पहले ही .NET 6, 7 और 8 के लिए सुरक्षा अपडेट जारी कर दिए हैं, जो लाइब्रेरी को अपडेट किए बिना भी हमले के कुछ वैक्टर को ब्लॉक करते हैं।



निष्कर्ष: Newtonsoft.Json में कमजोरी निर्भरताओं को नियमित रूप से अपडेट करने के महत्व की याद दिलाती है। सबसे विश्वसनीय लाइब्रेरी में भी गंभीर त्रुटियाँ हो सकती हैं। सुरक्षा बुलेटिनों पर नज़र रखें और तैनाती से पहले एक अलग वातावरण में अपडेट का परीक्षण करें।



यह लेख सूचनात्मक प्रकृति का है। हमेशा Microsoft के आधिकारिक स्रोतों का संदर्भ लें।

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