isolated-vm кітапханасындағы сыни осалдық хостта қашықтан код орындауға мүмкіндік береді
Материал бірнеше дереккөз негізінде жасанды интеллектпен дайындалды — түпнұсқаларға сілтемелер төменде.

Node.js-ке арналған isolated-vm кітапханасындағы типтерді шатастыруға негізделген сыни осалдық хост жүйесінде қашықтан код орындауға мүмкіндік береді. CVE идентификаторы жоқ бұл осалдық изоляттар арасында деректерді көшіру функциясы ExternalCopy-ге әсер етеді. Түзетулер isolated-vm 6.2.0 және 7.0.1 нұсқаларында қолжетімді.
Негізгі фактілер
- Осалдық изоляттар арасында деректерді көшіру үшін қолданылатын ExternalCopy функциясындағы типтерді шатастыру болып табылады.
- Түзетулер isolated-vm 6.2.0 және 7.0.1 нұсқаларына енгізілді, бұл көшіру кезінде пайдаланушы JavaScript-інің орындалуын болдырмайды.
- Сәтті эксплуатация хост-процестің басқару ағынын бұзуға немесе басып алуға әкеледі, бұл қашықтан код орындауға мүмкіндік береді.
- Изолятта сенімсіз кодты іске қосатын және оған кем дегенде бір Reference сілтемесін беретін кез келген әзірлеуші зардап шегеді.
Осалдықтың егжей-тегжейлері
Осалдық изоляттар арасында деректерді көшіру үшін қолданылатын ExternalCopy функциясындағы типтерді шатастыру болып табылады. ExternalCopy деректерді бір изолятта сериализациялайды және оларды басқа данада қалпына келтіреді. Өнімділікті оңтайландыру үшін transferList қолданылады: үлкен ArrayBuffer тізімделеді, ал негізгі жады буферді көзден ажыратып, оны алушыға беру арқылы тасымалданады. Реконструктор байт массивтерінің тізімін екі рет өңдеді, екінші өту біріншісіне сенді. JavaScript transfer_list массивін итерациялау геттер ретінде анықталған элемент үшін әр өтуде бірдей мәнді қайтармайтындықтан, шабуылдаушы басқарылатын көрсеткішті разыменование ету үшін time-of-check/time-of-use әлсіздігін пайдалана алады.
Эксплуатация және салдары
ExternalCopy конструкторы тек хосттан қолжетімді болғанымен, қонақ ivm.Reference — хост сэндбокске бірдеңе беретін механизм — нысанаға алып, зиянды transferList жасап, осалдықты шақыра алады. Сәтті эксплуатация хост-процестің басқару ағынын бұзуға (қызмет көрсетуден бас тарту) немесе басып алуға әкеледі, бұл хостта қашықтан код орындауға мүмкіндік береді. Изолятта сенімсіз кодты іске қосатын және оған кем дегенде бір Reference сілтемесін беретін кез келген әзірлеуші зардап шегеді. Шақырушы басқаратын массивті transferList ретінде беретін хост-код қонақтың қатысуынсыз тікелей зардап шегеді.
Түзету және жұмсарту
Түзетулер isolated-vm 6.2.0 және 7.0.1 нұсқаларына енгізілді, бұл көшіру кезінде пайдаланушы JavaScript-інің орындалуын болдырмайды. Осалдық жергілікті байланыстырушы кодта болды: шекара арқылы мәндерді сериализациялайтын C++ байланысында. Бұл қабат жадымен жұмыс істеуге қауіпсіз емес тілде жазылған; ол шикі V8 дескрипторларымен және резервтік жады көрсеткіштерімен айла-шарғы жасайды және қауіпсіздік үшін маңызды операцияның ортасында шабуылдаушы басқаратын JavaScript нысандарын қайта оқиды. Қайта оқылған мәндегі бір тексерілмеген типті түрлендіру оқшаулаудың дұрыс примитивін оның шегінен толық шығуға айналдыруға жеткілікті болды.
1 дереккөз
isolated-vm кітапханасындағы сыни осалдық хостта қашықтан код орындауға мүмкіндік береді






