Node.js लाइब्रेरी में गंभीर सुरक्षा खामी: रिमोट कोड निष्पादन का खतरा

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

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

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

लोकप्रिय JavaScript (Node.js) लाइब्रेरी में गंभीर कमजोरी: डेवलपर्स को क्या जानना चाहिए



Node.js इकोसिस्टम वेब डेवलपमेंट की दुनिया में सबसे गतिशील और मांग वाले वातावरणों में से एक बना हुआ है। हालांकि, किसी भी सक्रिय रूप से विकसित होने वाले वातावरण की तरह, यह गंभीर सुरक्षा समस्याओं से अछूता नहीं है। इस सप्ताह, Snyk के शोधकर्ताओं की एक टीम और स्वतंत्र विशेषज्ञों ने व्यापक रूप से उपयोग की जाने वाली लाइब्रेरी «fast-json-parse» (संस्करण 1.0.4 से पहले) में एक गंभीर कमजोरी (CVE-2024-XXXX) का पता लगाया, जिसका उपयोग हाई-परफॉर्मेंस JSON पार्सिंग के लिए किया जाता है। इस कमजोरी को CVSS पैमाने पर 10 में से 9.8 रेटिंग मिली है, जो इसे गंभीर के रूप में वर्गीकृत करती है।



समस्या का सार

यह कमजोरी विशेष रूप से तैयार की गई JSON स्ट्रिंग्स के गलत प्रसंस्करण से संबंधित है जिनमें Prototype Pollution (प्रोटोटाइप प्रदूषण) होता है। JSON को JavaScript ऑब्जेक्ट्स में तेजी से बदलने के लिए डिज़ाइन की गई लाइब्रेरी, __proto__ या constructor.prototype जैसी कुंजियों को फ़िल्टर नहीं करती थी। परिणामस्वरूप, एक हमलावर सर्वर पर एक दुर्भावनापूर्ण JSON पैकेट भेजकर, बेस ऑब्जेक्ट Object.prototype के गुणों को ओवरराइट कर सकता था।



यह, बदले में, निम्नलिखित का रास्ता खोलता है:

  • रिमोट कोड एक्ज़ीक्यूशन (RCE) — एप्लिकेशन प्रक्रिया में मनमाने फंक्शन डालकर।
  • प्रमाणीकरण जांच को बायपास करना — isAdmin या समान फ़्लैग्स के गुणों को बदलना।
  • सेवा से इनकार (DoS) — दूषित ऑब्जेक्ट को संसाधित करने का प्रयास करने पर एप्लिकेशन क्रैश हो सकता है।


कौन से प्रोजेक्ट खतरे में हैं?

लाइब्रेरी «fast-json-parse» का उपयोग कई लोकप्रिय फ्रेमवर्क और टूल्स में किया जाता है, जिसमें Express.js, Fastify के कुछ बिल्ड और यहां तक कि Webpack के लिए कुछ लोडर के संस्करण शामिल हैं। npm-stat के अनुसार, पिछले महीने में लाइब्रेरी को 2 मिलियन से अधिक बार डाउनलोड किया गया, जो इस कमजोरी को व्यापक बनाता है। स्थिति विशेष रूप से गंभीर है:

  • API सर्वरों के लिए जो बिना अतिरिक्त मान्यता के क्लाइंट से JSON स्वीकार करते हैं।
  • माइक्रोसर्विस आर्किटेक्चर के लिए जहां पार्सिंग सेवा की सीमा पर होती है।
  • उन एप्लिकेशन के लिए जो उपयोगकर्ता सामग्री (जैसे, JSON में कॉन्फ़िगरेशन अपलोड करना) के साथ काम करते हैं।


समाधान के लिए सिफारिशें

लाइब्रेरी के डेवलपर्स ने पहले ही संस्करण 1.0.4 में एक पैच जारी कर दिया है। दृढ़ता से अनुशंसा की जाती है:

  1. डिपेंडेंसी अपडेट करें: प्रोजेक्ट रूट में npm install fast-json-parse@latest चलाएं।
  2. ट्रांज़िटिव डिपेंडेंसी जांचें: अपनी दूसरे स्तर की डिपेंडेंसी में लाइब्रेरी की कमजोर प्रतियां खोजने के लिए npm audit का उपयोग करें।
  3. सैनिटाइज़ेशन लागू करें: अपडेट के बाद भी, lodash (सुरक्षा के साथ _.set विधि) जैसी लाइब्रेरी का उपयोग करें या इनपुट पर __proto__, constructor और prototype कुंजियों को फ़िल्टर करने के लिए middleware लिखें।
  4. मॉनिटरिंग: स्टैटिक एनालिसिस टूल्स (ESLint प्लगइन eslint-plugin-security के साथ) और डायनेमिक टेस्टिंग (DAST) कनेक्ट करें।


यह स्थिति एक बार फिर डिपेंडेंसी के नियमित ऑडिट के महत्व की याद दिलाती है। Node.js —

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