उन्होंने RubyGems.org में एक भेद्यता की खोज की जिसने संकुल को बदलने की अनुमति दी

हाल ही में खबर है कि तोड़ दिया में एक गंभीर भेद्यता की पहचान की गई थी पैकेज रिपॉजिटरी rubygems.org (भेद्यता पहले से ही CVE-2022-29176 के तहत सूचीबद्ध है), जो की अनुमति उचित प्राधिकरण के बिना, अन्य लोगों के पैकेज बदलें एक वैध पैकेज को यंक करके और उसके स्थान पर उसी नाम और संस्करण संख्या के साथ दूसरी फाइल अपलोड करके भंडार में।

यह उल्लेख है कि भेद्यता "यैंक" एक्शन हैंडलर में एक बग के कारण है, जो हाइफ़न के बाद नाम के भाग को प्लेटफ़ॉर्म नाम के रूप में मानता है, जिससे हाइफ़न वर्ण तक नाम के भाग से मेल खाने वाले बाहरी पैकेजों को हटाना संभव हो जाता है।

विशेष रूप से ऑपरेशन के नियंत्रक कोड में "यैंक", कॉल 'find_by!(full_name: "#{rubygem.name}-#{slug}")' पैकेज की खोज के लिए इस्तेमाल किया गया था, जबकि "स्लग" पैरामीटर को पैकेज के मालिक को हटाने के लिए संस्करण निर्धारित करने के लिए पास किया गया था।

"रेल-एचटीएमएल" पैकेज का मालिक "1.2.3" संस्करण के बजाय "सैनिटाइज़र-1.2.3" निर्दिष्ट कर सकता था, जिससे ऑपरेशन "रेल-एचटीएमएल-सैनिटाइज़र-1.2.3" पर लागू हो जाएगा। पैकेज किसी और से। »

Rubygems.org के लिए एक सुरक्षा परामर्श कल प्रकाशित किया गया था।

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

आइए देखें कि निष्कर्षण प्रक्रिया से गुजरते समय क्या गलत हुआ। एक बहाने के रूप में, आइए एक ऐसे परिदृश्य की कल्पना करें जहां हम व्यापक रूप से उपयोग किए जाने वाले "रेल-एचटीएमएल-सैनिटाइज़र" रत्न तक अनधिकृत पहुंच प्राप्त करने के इरादे से "रेल-एचटीएमएल" नामक एक रत्न बनाते हैं।

यह उल्लेख है कि तीन शर्तें पूरी होनी चाहिए, इस भेद्यता का सफलतापूर्वक दोहन करने के लिए:

  • हमला केवल उन पैकेटों पर किया जा सकता है जिनके नाम में एक हाइफ़न वर्ण होता है।
  • एक हमलावर नाम के हिस्से के साथ हाइफ़न वर्ण तक एक रत्न पैक रखने में सक्षम होना चाहिए। उदाहरण के लिए, यदि हमला "रेल-एचटीएमएल-सैनिटाइज़र" पैकेज के खिलाफ है, तो हमलावर को अपने स्वयं के "रेल-एचटीएमएल" पैकेज को भंडार में रखना होगा।
  • हमला किया गया पैकेज पिछले 30 दिनों में बनाया गया होगा या 100 दिनों के लिए अद्यतन नहीं किया गया होगा।

समस्या एक सुरक्षा शोधकर्ता द्वारा पहचाना गया था ज्ञात ओपन सोर्स प्रोजेक्ट्स में सुरक्षा मुद्दों को खोजने के लिए HackerOne बाउंटी प्रोग्राम के हिस्से के रूप में।

समस्या 5 मई को RubyGems.org पर तय किया गया और डेवलपर्स के अनुसार, अभी तक शोषण के निशान की पहचान नहीं की है पिछले 18 महीनों से लॉग में भेद्यता की। साथ ही, अभी तक केवल एक सतही ऑडिट किया गया है, और भविष्य में और अधिक गहन ऑडिट की योजना बनाई गई है।

वर्तमान में, हम मानते हैं कि इस भेद्यता का शोषण नहीं किया गया है।

जब कोई रत्न संस्करण जारी या हटा दिया जाता है, तो RubyGems.org सभी रत्न मालिकों को एक ईमेल भेजता है। हमें रत्न मालिकों से कोई समर्थन ईमेल प्राप्त नहीं हुआ है जो दर्शाता है कि उनके रत्न को प्राधिकरण के बिना खनन किया गया है।

पिछले 18 महीनों में रत्न परिवर्तन के ऑडिट में इस भेद्यता के दुर्भावनापूर्ण उपयोग का कोई उदाहरण नहीं मिला। इस कारनामे के किसी भी संभावित उपयोग के लिए आगे की ऑडिटिंग में रूबीगेम्स के इतिहास में प्राधिकरण के बिना किसी रत्न को लेने के लिए इस्तेमाल किए जाने वाले इस शोषण का कोई उदाहरण नहीं मिला। हम गारंटी नहीं दे सकते कि ऐसा कभी नहीं हुआ, लेकिन इसकी संभावना नहीं है।

अपनी परियोजनाओं को सत्यापित करने के लिए, Gemfile.lock फ़ाइल में संचालन के इतिहास का विश्लेषण करने की अनुशंसा की जाती है, दुर्भावनापूर्ण गतिविधि समान नाम और संस्करण के साथ परिवर्तनों की उपस्थिति में या प्लेटफ़ॉर्म परिवर्तन की उपस्थिति में व्यक्त की जाती है (उदाहरण के लिए, जब पैकेज xxx-1.2.3 .1.2.3 को xxx-XNUMX-xxx में अपडेट किया जाता है)।

समाधान के रूप में निरंतर एकीकरण प्रणालियों में या परियोजनाओं को प्रकाशित करते समय छिपे हुए पैकेजों की स्पूफिंग के खिलाफ, डेवलपर्स को बंडलर का उपयोग करने की सलाह दी जाती है विकल्पों के साथ "-फ्रोजन" या "-तैनाती" निर्भरताओं की पुष्टि करने के लिए।

अंत में, यदि आप इसके बारे में अधिक जानने में रुचि रखते हैं, आप में विवरण देख सकते हैं निम्नलिखित लिंक।


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

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

*

*

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