Wasmtime-dagi muhim zaiflik, WebAssembly ilovalari uchun ish vaqti

Wasmtime 6.0.1, 5.0.1 va 4.0.1 tuzatuvchi yangilanishlari xavfning kritik darajasiga ega bo'lgan zaiflikni (CVE-2023-26489) tuzatdi. Zaiflik ma'lumotlarni xotira maydoniga ajratilgan WebAssembly kodi uchun ruxsat etilgan chegaralardan tashqarida yozish imkonini beradi, bu tajovuzkor tomonidan o'z kodini izolyatsiya qilingan WASI muhitidan tashqarida bajarish uchun foydalanishi mumkin.

Wasmtime - bu odatiy mustaqil ilovalar sifatida WASI (WebAssembly System Interface) kengaytmalari bilan WebAssembly ilovalarini ishga tushirish uchun ish vaqti. Asboblar to'plami Rust tilida yozilgan va zaiflik Cranelift kod generatorida chiziqli xotirani manzillash qoidalarini aniqlashdagi mantiqiy xato tufayli yuzaga keladi, bu apparat arxitekturasidan mustaqil oraliq tasvirni x86_64 arxitekturasi uchun bajariladigan mashina kodiga aylantiradi.

Xususan, WebAssembly ilovalari uchun WebAssembly-da ruxsat etilgan 35-bitli manzillar oΚ»rniga 33-bitli samarali manzillar hisoblab chiqildi, bu oΚ»qish va yozish operatsiyalari uchun ruxsat etilgan virtual xotira chegarasini 34 Gb ga oΚ»tkazdi, shu bilan birga, sinov muhiti sozlamalari himoyani taΚΌminlaydi. Asosiy manzildan 6 GB. Natijada, asosiy manzildan 6 dan 34 GB gacha bo'lgan virtual xotira diapazoni WebAssembly ilovalaridan o'qish va yozish uchun mavjud edi. Ushbu xotira boshqa WebAssembly muhitlarini yoki WebAssembly ish vaqti komponentlarini joylashtirishi mumkin.

Agar Wasmtime versiyasini yangilash imkoni bo'lmasa, xatoni blokirovka qilish uchun vaqtinchalik yechim "Config::static_memory_maximum_size(0)" parametrini belgilab, barcha chiziqli xotiraga kirishda alohida chegaralarni tekshirishni faollashtirishdan iborat (natijada sezilarli ishlash jazosi) . Yana bir variant - muammoli virtual xotira diapazoniga joylashtirilgan Guard sahifalar sonini (kirish paytida istisno) ko'paytirish uchun "Config::static_memory_guard_size(1 <36)" sozlamasidan foydalanish (natijada katta hajmdagi virtual xotira va bir vaqtning o'zida WebAssembly ilovalari bilan ishlaydigan sonni cheklash).

Manba: opennet.ru

a Izoh qo'shish