
शैक्षिक प्रस्तुति जो CVE-2021-21220 के शोषण का विवरण देती है, जो V8 JIT प्रकार भ्रम है जो WebAssembly के माध्यम से OOB एक्सेस और RCE की ओर ले जाता है, साथ में शमन विश्लेषण भी।
यह प्रस्तुति CVE-2021-21220 के शोषण की व्याख्या करती है, जो Google Chrome के V8 JavaScript इंजन में एक भेद्यता है, जो अनुकूलन के दौरान गलत JIT कंपाइलर धारणाओं के कारण उत्पन्न हुई है।
प्रस्तुति निम्नलिखित बिंदुओं से गुज़रती है:
इस प्रस्तुति का लक्ष्य यह दर्शाना है कि एक आधुनिक JavaScript इंजन के भीतर एक सूक्ष्म अनुकूलन गलती कैसे बढ़कर निम्नलिखित में बदल सकती है:
यह exploit श्रृंखला दर्शाती है कि JIT इंजन प्रदर्शन और सुरक्षा के बीच संतुलन कैसे बनाते हैं, और कैसे गलत अनुकूलन धारणाएँ शोषण योग्य बन सकती हैं।
प्रस्तुति V8 के प्रमुख घटकों से परिचित कराती है:
प्रस्तुति में आर्किटेक्चर आरेख दर्शाता है कि JavaScript कैसे इस प्रकार आगे बढ़ता है:
Parsing → Bytecode → Optimization → Execution
JavaScript उच्च-प्रदर्शन निष्पादन के लिए चुनौतीपूर्ण है क्योंकि:
+ जैसे ऑपरेटरों के कई अर्थ हो सकते हैंV8 रनटाइम व्यवहार के बारे में अनुमान लगाकर सामान्य निष्पादन पैटर्न को अनुकूलित करने के लिए JIT संकलन का उपयोग करता है।
यह भेद्यता JIT अनुकूलन के दौरान signed बनाम unsigned पूर्णांक बेमेल से उत्पन्न होती है।
प्रदर्शित प्रमुख अवधारणाएँ:
Uint32ArrayWord32XorChangeInt32ToInt64exploit इस मान का दुरुपयोग करता है:
0x80000000
जो 32-बिट पूर्णांक का साइन बिट सेट करता है।
यह भेद्यता इसलिए उत्पन्न होती है क्योंकि TurboFan इसको पूरी तरह से अनुकूलित करके हटा देता है:
x ^ 0
इस अनुकूलन के दौरान:
इसके परिणामस्वरूप गलत मशीन कोड निर्माण और हमलावर-नियंत्रित मान उत्पन्न होते हैं।
exploit गलत JIT परिणाम को ऐरे व्यवहार पर नियंत्रण में परिवर्तित करता है।
प्रस्तुति निम्नलिखित प्रदर्शित करती है:
i में रूपांतरणArray.shift() लंबाई अंडरफ़्लोदिखाई गई महत्वपूर्ण exploit अवधारणाएँ:
जब ऐरे की लंबाई -1 हो जाती है, हमलावर को प्राप्त होता है:
फिर exploit निम्नलिखित प्रदर्शित करता है:
प्रस्तुति बताती है कि हमलावर कैसे लक्षित कर सकते हैं:
हमले का प्रवाह:
यह दर्शाता है कि JavaScript इंजन बग प्रक्रिया-स्तरीय कोड निष्पादन में कैसे परिवर्तित हो सकता है।
अंतिम अनुभाग आधुनिक ब्राउज़र सुरक्षा उपायों को शामिल करता है:
प्रत्यक्ष पॉइंटर जोखिम और हीप की भविष्यवाणी को कम करते हैं।
कच्चे मेमोरी पतों तक सीधी पहुंच को रोकते हैं।
मेमोरी क्षेत्रों को अलग करते हैं और exploit के प्रभाव को कम करते हैं।
पेजों को एक साथ लिखने योग्य और निष्पादन योग्य होने से रोकते हैं।
प्रस्तुति में साइन-एक्सटेंशन समस्या के समाधान को दर्शाने वाला वास्तविक V8 पैच diff भी शामिल है।
यह प्रस्तुति दर्शाती है कि:
यह सामग्री कड़ाई से केवल निम्नलिखित के लिए है:
इस जानकारी का उपयोग उन प्रणालियों के विरुद्ध न करें जिनके स्वामी आप नहीं हैं या जिनके परीक्षण की अनुमति आपके पास नहीं है।