Wasmtime жүйесіндегі маңызды осалдық, WebAssembly қолданбаларының орындалу уақыты

Wasmtime 6.0.1, 5.0.1 және 4.0.1 түзету жаңартулары қауіптіліктің сыни деңгейі тағайындалған осалдықты (CVE-2023-26489) түзетеді. Осалдық деректерді оқшауланған WebAssembly коды үшін рұқсат етілген шектен тыс жад аймағына жазуға мүмкіндік береді, оны шабуылдаушы өз кодын оқшауланған WASI ортасынан тыс орындау үшін пайдалануы мүмкін.

Wasmtime — WASI (WebAssembly Жүйе интерфейсі) кеңейтімдері бар WebAssembly қолданбаларын кәдімгі оқшау қолданбалар ретінде іске қосуға арналған жұмыс уақыты. Құралдар жинағы Rust тілінде жазылған және осалдық Cranelift код генераторында желілік жадты адрестеу ережелерін анықтаудағы логикалық қатеден туындайды, ол аппараттық құрылымнан тәуелсіз аралық көріністі x86_64 архитектурасы үшін орындалатын машина кодына аударады.

Атап айтқанда, WebAssembly қолданбалары үшін WebAssembly жүйесінде рұқсат етілген 35 биттік мекенжайлардың орнына 33 биттік тиімді мекенжайлар есептелді, бұл оқу және жазу әрекеттеріне рұқсат етілген виртуалды жадтың шегін 34 ГБ-қа ауыстырды, ал құм жәшігінің ортасының параметрлері қорғауды қамтамасыз етеді. Негізгі мекенжайдан 6 ГБ. Нәтижесінде, WebAssembly қолданбаларынан оқу және жазу үшін негізгі мекенжайдан 6-дан 34 ГБ-қа дейінгі виртуалды жад ауқымы қолжетімді болды. Бұл жад басқа WebAssembly орталарын немесе WebAssembly жұмыс уақыты құрамдастарын орналастыра алады.

Wasmtime нұсқасын жаңарту мүмкін болмаса, қатені бұғаттауға арналған уақытша шешім барлық желілік жадқа кірулерде бөлек шекараларды тексеруді қосу үшін "Config::static_memory_maximum_size(0)" опциясын көрсету болып табылады (нәтижесінде айтарлықтай өнімділік жазасы) . Басқа опция проблемалы виртуалды жад ауқымында орналастырылған (қолжеткізу кезіндегі ерекше жағдай) (нәтижесінде виртуалды жадтың үлкен көлемін сақтауға және WebAssembly қолданбаларын бір уақытта іске қосатын санды шектеу).

Ақпарат көзі: opennet.ru

пікір қалдыру