Kerentanan kritis ing Wasmtime, runtime kanggo aplikasi WebAssembly

Nganyari mbenakake Wasmtime 6.0.1, 5.0.1 lan 4.0.1 ndandani kerentanan kasebut (CVE-2023-26489), sing diwenehi tingkat bebaya kritis. Kerentanan kasebut ngidini data bisa ditulis menyang area memori ing njaba wates sing diidini kanggo kode WebAssembly sing terisolasi, sing bisa digunakake dening panyerang kanggo nglakokake kode kasebut ing njaba lingkungan WASI sing terisolasi.

Wasmtime minangka runtime kanggo mbukak aplikasi WebAssembly kanthi ekstensi WASI (WebAssembly System Interface) minangka aplikasi mandiri biasa. Toolkit ditulis ing basa Rust, lan kerentanan disababakΓ© dΓ©ning kesalahan logis ing netepake aturan alamat memori linear ing generator kode Cranelift, kang nerjemahake perwakilan penengah independen arsitektur hardware menyang kode mesin eksekusi kanggo arsitektur x86_64.

Utamane, kanggo aplikasi WebAssembly, alamat efektif 35-bit diwilang tinimbang alamat 33-bit sing diidinake ing WebAssembly, sing mindhah watesan memori virtual sing diidini kanggo operasi maca lan nulis dadi 34 GB, dene setelan lingkungan kothak wedhi menehi perlindungan kanggo 6 GB saka alamat dhasar. AkibatΓ©, sawetara memori virtual saka 6 kanggo 34 GB saka alamat dhasar kasedhiya kanggo maca lan nulis saka aplikasi WebAssembly. Memori iki bisa dadi tuan rumah lingkungan WebAssembly liyane utawa komponen runtime WebAssembly.

Yen ora bisa nganyari versi Wasmtime, solusi kanggo mblokir kesalahan yaiku nemtokake pilihan "Config :: static_memory_maximum_size (0)" kanggo ngaktifake mriksa wates sing kapisah ing kabeh akses memori linear (ngasilake paukuman kinerja sing signifikan) . Pilihan liyane yaiku nggunakake setelan "Config :: static_memory_guard_size (1 < 36)" kanggo nambah jumlah Kaca Pengawal (pangecualian sing dibuwang nalika diakses) sing diselehake ing sawetara memori virtual sing bermasalah (nyebabake cadangan akeh memori virtual lan matesi jumlah sing mbukak aplikasi WebAssembly bebarengan).

Source: opennet.ru

Add a comment