Node.js लाइब्रेरी में गंभीर सुरक्षा दोष: हजारों परियोजनाओं के लिए खतरा

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

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

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

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



वेब डेवलपमेंट की दुनिया में एक ऐसी घटना घटी है जिसने हजारों परियोजनाओं को प्रभावित किया है। सुरक्षा शोधकर्ताओं ने polyfill-service लाइब्रेरी (npm पर node-polyfill-service पैकेज) में एक गंभीर सुरक्षा दोष का पता लगाया है, जिसका व्यापक रूप से पुराने रनटाइम वातावरणों में आधुनिक JavaScript सुविधाओं के लिए समर्थन जोड़ने के लिए उपयोग किया जाता है। इस समस्या को CVE-2024-38526 पहचानकर्ता और CVSS पैमाने पर 10 में से 9.8 का स्कोर दिया गया है - यह दूरस्थ हमलों के लिए खतरे का अधिकतम स्तर है।



समस्या का सार

यह सुरक्षा दोष पॉलीफिल्स की डायनामिक लोडिंग के लिए जिम्मेदार फ़ंक्शन में इनपुट डेटा के गलत प्रसंस्करण से संबंधित है। एक हमलावर एक विशेष रूप से तैयार HTTP अनुरोध भेज सकता है, जो सर्वर पर मनमाना JavaScript कोड निष्पादित करने की ओर ले जाता है। यह एप्लिकेशन से पूरी तरह समझौता करने का रास्ता खोलता है: डेटा चोरी से लेकर बैकडोर स्थापित करने तक।



यह कैसे काम करता है

  • हमले का वेक्टर: सुरक्षा दोष पॉलीफिल कैशिंग तंत्र में है। गलत features पैरामीटर पास करने पर, लाइब्रेरी खतरनाक eval() ऑपरेशन निष्पादित करती है।
  • शोषण: हमले के लिए, बॉडी में payload के साथ POST अनुरोध भेजना पर्याप्त है। सरलीकृत एक्सप्लॉइट कोड का उदाहरण:


const payload = 'require("child_process").execSync("rm -rf /")';fetch('/polyfill?features=' + encodeURIComponent(payload));


वास्तविक परिस्थितियों में, हमलावर अधिक परिष्कृत तरीकों का उपयोग करते हैं, जैसे रिवर्स शेल या रैनसमवेयर डालना।



यह किसे प्रभावित करता है

यह सुरक्षा दोष 1.4.3 से पहले के node-polyfill-service के सभी संस्करणों को प्रभावित करता है। लाइब्रेरी का उपयोग इसमें किया जाता है:

  • सर्वर-साइड रेंडरिंग फ्रेमवर्क (Next.js, Nuxt.js);
  • बिल्ड टूल्स (Webpack, Vite);
  • Node.js पर कंटेंट मैनेजमेंट सिस्टम।


अभी क्या करें

  • लाइब्रेरी को अपडेट करें संस्करण 1.4.4 या उससे ऊपर: npm update node-polyfill-service;
  • अपनी निर्भरताएँ जांचें अपने package-lock.json में कमजोर संस्करण की उपस्थिति के लिए;
  • सुरक्षा विश्लेषकों का उपयोग करें — स्वचालित रूप से सुरक्षा दोष खोजने के लिए npm audit या Snyk;
  • इनकमिंग अनुरोधों को सीमित करें इंफ्रास्ट्रक्चर स्तर पर WAF (Web Application Firewall) के माध्यम से।


डेवलपर के लिए निष्कर्ष

यह घटना निर्भरताओं के नियमित ऑडिट के महत्वपूर्ण महत्व की याद दिलाती है। यहां तक कि प्रति सप्ताह सैकड़ों हजारों डाउनलोड वाली एक छोटी लाइब्रेरी भी गंभीर खतरे का स्रोत बन सकती है। हम GitHub Advisory Database के माध्यम से नए CVE के बारे में स्वचालित सूचनाएं सेट करने और डिप्लॉय करने से पहले हमेशा एक अलग वातावरण में अपडेट का परीक्षण करने की सलाह देते हैं।



महत्वपूर्ण: यदि आप production में polyfill-service का उपयोग कर रहे हैं, तो तुरंत संस्करण की जांच करें। अपडेट करने में देरी आपकी परियोजना की सुरक्षा की कीमत चुका सकती है।

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