Io_uring में एक भेद्यता ने उपयोगकर्ता को बिना अनुमति के कंटेनर में भी रूट बनने की अनुमति दी

हाल ही में प्रकट की गई भेद्यता जानकारी (CVE-2022-29582) io_uring एसिंक्रोनस I/O इंटरफ़ेस के कार्यान्वयन में, संस्करण 5.1 के बाद से Linux कर्नेल में शामिल है, जो एक अनपेक्षित उपयोगकर्ता को सिस्टम पर रूट बनने की अनुमति देता है, भले ही एक कंटेनर शोषण को निष्पादित कर रहा हो।

यह उल्लेखनीय है कहा कि भेद्यता 3 महीने पहले ही रिपोर्ट की गई थी (लगभग इस साल मई की शुरुआत में), लेकिन पूरी जानकारी और खुलासा हाल ही में जारी किया गया था।

भेद्यता के संबंध में, यह उल्लेख किया गया है कि यह तब होता है जब पहले से मुक्त स्मृति के ब्लॉक तक पहुँच प्राप्त होती है, 5.10 शाखा से शुरू होने वाले लिनक्स कर्नेल में खुद को प्रकट करता है।

भेद्यता CVE-2022-29582 के बारे में

यह भेद्यता मुक्त स्मृति तक पहुंच की अनुमति देता है io_flush_timeouts() फ़ंक्शन में टाइमआउट को हैंडल करते समय दौड़ की स्थिति के परिणामस्वरूप, जोई टाइमआउट प्रविष्टि को हटा देता है उस बिंदु पर टाइमआउट के निर्माण और विलोपन को सत्यापित किए बिना, सूची से और इसे रद्द कर देता है।

io_uring का एक अद्यतन सामान्य विवरण दूसरों द्वारा पहले ही प्रदान किया जा चुका है। वे इसे हमारी तुलना में एक हजार गुना बेहतर तरीके से समझाते हैं, इसलिए हम सबसिस्टम को अधिक व्यापक रूप से कवर करेंगे (देखें यह ग्रैपल सुरक्षा लेख और यह फ्लैट सुरक्षा लेख एक महान परिचय के लिए)।

क्या अधिक महत्वपूर्ण है, opcode फ़ील्ड निर्धारित करता है कि किस प्रकार का ऑपरेशन करना है। प्रत्येक "ऑपोड" के लिए जिसकी आवश्यकता होती है, fd फ़ील्ड फ़ाइल डिस्क्रिप्टर को निर्दिष्ट करता है जिस पर अनुरोधित I/O निष्पादित करना है। लगभग सभी सामान्य I/O सिस्टम कॉल (पढ़ें, भेजें, आदि) में एक समान एसिंक्रोनस ओपकोड होता है। प्रत्येक क्षेत्र ऑपरेशन के आधार पर अलग-अलग भूमिकाएँ निभा सकता है।

एक बार SQ से पुनर्प्राप्त करने के बाद, एक SQE को struct io_kiocb (कर्नेल इनपुट/आउटपुट कॉल बैक) द्वारा वर्णित आंतरिक प्रतिनिधित्व में बदल दिया जाता है। इन वस्तुओं को आमतौर पर अनुरोध के रूप में जाना जाता है।

struct io_kiocb का उपयोग SQE "रेडी-फॉर-लॉन्च" के समकक्ष के रूप में किया जाता है, जिस पर यह आधारित है, जिससे किसी भी फ़ाइल डिस्क्रिप्टर को स्ट्रक्चर फ़ाइल * s के लिए हल किया जाता है, उपयोगकर्ता क्रेडेंशियल संलग्न होते हैं, व्यक्तित्व (जिसमें कोर चलेंगे), आदि .

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

उल्लेख है कि ऐसे कुछ परिदृश्य हैं जिनमें किसी वस्तु को बदलना आसान होता है प्रगति पर। लेकिन दो सीमाएँ हैं:

  • LT' को रेस विंडो में असाइन और इनिशियलाइज़ किया जाना है। यानी एलटी जारी होने के बाद लेकिन एलटी में एक ऐसे बिंदु पर पहुंचने से पहले जो अब एक्सेस नहीं किया जाता है।
  • LT' केवल एक और स्ट्रक्चर io_kiocb ऑब्जेक्ट हो सकता है। ढेर अलगाव के कारण, जहां ढेर में वस्तुओं को उनके प्रकार के अनुसार अलग किया जाता है, उन्हें रेस विंडो के भीतर एक अलग प्रकार की वस्तु के रूप में पुन: असाइन करना बहुत मुश्किल होता है।

शोधकर्ताओं ने एक कार्यात्मक शोषण तैयार किया है जिसके संचालन के लिए उपयोगकर्ता पहचानकर्ता नामस्थान (उपयोगकर्ता नामस्थान) को शामिल करने की आवश्यकता नहीं होती है और जब एक अनपेक्षित उपयोगकर्ता एक अलग कंटेनर में शोषण शुरू करता है तो मेजबान को रूट पहुंच प्रदान कर सकता है।

हमारा शोषण कर्नेल संस्करण 5.10.90 को लक्षित करता है, वह संस्करण जो उस समय Google दूरस्थ रूप से चल रहा था। हमें सर्वर के विशिष्ट विनिर्देशों (4 स्काईलेक ज़ीऑन कोर @ 2.80Ghz, 16GiB रैम) के लिए अपने शोषण को समायोजित करना था, लेकिन कुछ ट्विकिंग के साथ, कमजोर कर्नेल चलाने वाली कोई भी मशीन शोषक होनी चाहिए।

शोषण nsjail के वातावरण में भी काम करता है क्रोमियम OS पर आधारित Google COS (कंटेनर ऑप्टिमाइज्ड OS) वितरण पर पृथक और कंप्यूट इंजन वर्चुअल मशीनों पर Google क्लाउड प्लेटफ़ॉर्म पर उपयोग किया जाता है। शोषण को कर्नेल शाखाओं के साथ 5.10 से 5.12 तक काम करने के लिए डिज़ाइन किया गया है। अंत में, यह उल्लेखनीय है कि अपडेट 5.10.111, 5.15.34 और 5.17.3 में अप्रैल में तय की गई समस्या।

अंत में, यदि आप भेद्यता के बारे में अधिक जानने में रुचि रखते हैं, तो आप किए गए प्रकाशन से परामर्श कर सकते हैं निम्नलिखित लिंक में


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

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

*

*

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