दुर्भावनापूर्ण कोड purescript npm इंस्टॉलर में पाया गया

एनपीएम प्योरस्क्रिप्ट

कुछ दिनों पहले PureScript इंस्टॉलर के साथ npm पैकेज की निर्भरता में दुर्भावनापूर्ण कोड का पता चला था, जो कि पिकेटस्क्रिप्ट पैकेज को स्थापित करने का प्रयास करते समय प्रकट होता है।

गलत मंशा वाला कोड लोड-से-सीडब्ल्यूडी-या-एनपीएम निर्भरता के माध्यम से एम्बेडेड और गति मानचित्र निर्भरता। यह ध्यान दिया जाना चाहिए कि PureScript इंस्टॉलर के साथ npm पैकेज के मूल लेखक, जो हाल ही में इस npm पैकेज को बनाए रखने में शामिल थे, लेकिन पैकेज अन्य अनुचर को भेजा गया था, इन निर्भरताओं के साथ संकुल के साथ जिम्मेदार है।

समस्या के बारे में

समस्या को पैकेज के नए विश्लेषकों में से एक ने खोजा था, जिनके लिए रखरखाव के अधिकारों को कई असहमति और बदसूरत चर्चाओं के बाद npm के मूल लेखक पैकेज के साथ स्थानांतरित कर दिया गया था।

नया रखवाला प्योरस्क्रिप्ट कंपाइलर और के लिए जिम्मेदार हैं उन्होंने जोर देकर कहा कि एनपीएम पैकेज को इसके इंस्टॉलर के साथ रख-रखाव करने वालों द्वारा खुद ही मरम्मत की जानी चाहिए, न कि प्रोजेक्ट के बाहर किसी डेवलपर द्वारा।

PureScript इंस्टॉलर के साथ npm पैकेज का लेखक लंबे समय तक असहमत था, लेकिन फिर उसने हार मान ली और रिपॉजिटरी को एक्सेस दे दिया। हालाँकि, कुछ निर्भरताएँ उसके नियंत्रण में थीं।

पिछले हफ्ते, PureScript 0.13.2 संकलक के रिलीज की घोषणा की गई थी और नए अनुरक्षकों ने इंस्टॉलर के साथ npm पैकेज का संगत अद्यतन तैयार किया, जिसके लिए दुर्भावनापूर्ण कोड का पता लगाया गया था।

दुर्भावनापूर्ण कोड को पहले npm पैकेज "लोड-से-सीडब्ल्यूडी-या-एनपीएम" में डाला गया था संस्करण 3.0.2 में और फिर संस्करण 1.0.3 से रेट-मैप पैकेज में। अंतिम दिनों में दोनों पैकेजों के कई संस्करण प्रकाशित हुए हैं।

PureScript इंस्टॉलर के साथ npm पैकेज के लेखक के साथ पोस्ट से स्थानांतरित कर दिया गया, उन्होंने कहा कि उनके खाते को अज्ञात मतदाताओं द्वारा समझौता किया गया था।

हालांकि, वर्तमान रूप में, दुर्भावनापूर्ण कोड की क्रियाएं केवल पैकेज इंस्टॉलेशन को तोड़कर सीमित कर दी गई थीं, जो नए अनुरक्षकों का पहला संस्करण था। बिना किसी स्पष्ट दुर्भावनापूर्ण गतिविधि के "npm i -g purescript" कमांड के साथ एक पैकेज को स्थापित करने का प्रयास करते समय दुर्भावनापूर्ण कार्यों को समाप्त कर दिया गया।

दो हमलों की पहचान की गई

सारांश में, डाउनलोड को पूरा होने से रोकने के लिए कोड purescript npm इंस्टॉलर को तोड़फोड़ करता है, जिससे इंस्टॉलर को "चेक करें कि क्या आपके प्लेटफ़ॉर्म के लिए एक प्री-कम्पोस्ड बाइनरी प्रदान की गई है" के दौरान लटका हुआ है।

पहले शोषण ने लोड-से-सीडीडब्ल्यू-या-एनपीएम पैकेज को तोड़कर ऐसा किया ताकि किसी भी कॉल को loadFromCwdOrNpm () अपेक्षित पैकेज (इस मामले में, अनुरोध पैकेज, जिसे हम संकलक बायनेरिज़ डाउनलोड करने के लिए उपयोग कर रहे थे) के बजाय एक पास-थ्रू अनुक्रम लौटाएंगे। शोषण के दूसरे पुनरावृत्ति ने एक डाउनलोड कॉलबैक को निकाल दिए जाने से रोकने के लिए एक स्रोत फ़ाइल को संशोधित करके ऐसा किया।

4 दिनों बाद डेवलपर्स ने खामियों के स्रोत को समझा और निर्भरता से लोड-सीडब्ल्यूडी-ओ-एनपीएम को बाहर करने के लिए एक अपडेट जारी करने की तैयारी कर रहे थे।, हमलावरों ने एक और अपडेट लोड-से-सीडब्ल्यूडी-एनपीएम 3.0.4 जारी किया, जहां दुर्भावनापूर्ण कोड हटा दिया गया है।

हालाँकि, एक और रेट-मैप 1.0.3 निर्भरता का अपडेट लगभग तुरंत जारी किया गया था, जिसमें एक फिक्स जोड़ा गया था जो डाउनलोड के लिए कॉलबैक कॉल को ब्लॉक करता है।

यही है, दोनों मामलों में, लोड-से-सीडीडब्ल्यू-या-एनपीएम के नए संस्करणों में परिवर्तन और मानचित्र दर एक स्पष्ट विचलन की प्रकृति के थे।

इसके अलावा, दुर्भावनापूर्ण कोड में एक चेक था जो केवल नए रखरखाव के संस्करण को स्थापित करते समय विफल क्रियाओं को चालू करता था और पिछले संस्करणों को स्थापित करते समय यह बिल्कुल भी प्रकट नहीं होता था।

डेवलपर्स ने एक अद्यतन जारी करके समस्या को हल किया जिसमें समस्याग्रस्त निर्भरताएं हटा दी गईं।

PureScript के समस्याग्रस्त संस्करण को स्थापित करने की कोशिश करने के बाद उपयोगकर्ताओं के सिस्टम पर संकलित कोड को रोकने के लिए।

अंत में डेवलपर अनुशंसा करता है उन सभी के लिए जिनके पास अपने सिस्टम पर पैकेज के उक्त संस्करण हैं नोड_मॉड्यूल निर्देशिकाओं और पैकेज- lock.json फ़ाइलों की सामग्री को हटा दें और फिर 0.13.2 संस्करण को सेट करें।


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।