Kerentanan kritis dina Wasmtime, runtime pikeun aplikasi WebAssembly

Pembaruan koréksi Wasmtime 6.0.1, 5.0.1 sareng 4.0.1 ngalereskeun kerentanan (CVE-2023-26489), anu dipasihan tingkat bahaya anu kritis. Kerentanan ngamungkinkeun data ditulis ka wewengkon mémori di luar wates anu diidinan pikeun kode WebAssembly terasing, anu berpotensi dianggo ku panyerang pikeun ngaéksekusi kodeu di luar lingkungan WASI terasing.

Wasmtime mangrupikeun runtime pikeun ngajalankeun aplikasi WebAssembly sareng ekstensi WASI (WebAssembly System Interface) salaku aplikasi mandiri biasa. Toolkit ieu ditulis dina basa Rust, sarta kerentanan disababkeun ku kasalahan logis dina watesan memori linier alamat aturan dina generator kode Cranelift, nu narjamahkeun hiji ngagambarkeun panengah bebas arsitektur hardware kana kode mesin laksana pikeun arsitektur x86_64.

Khususna, pikeun aplikasi WebAssembly, alamat efektif 35-bit diitung tinimbang alamat 33-bit anu diidinan dina WebAssembly, anu ngageser wates mémori virtual anu diidinan pikeun maca sareng nyerat operasi ka 34 GB, sedengkeun setélan lingkungan sandbox nyayogikeun panyalindungan pikeun. 6 GB ti alamat dasar. Hasilna, rentang mémori maya ti 6 nepi ka 34 GB ti alamat dasar éta sadia pikeun maca jeung nulis ti aplikasi WebAssembly. Memori ieu tiasa janten host lingkungan WebAssembly sanés atanapi komponén runtime WebAssembly.

Upami teu mungkin pikeun ngapdet versi Wasmtime, solusi pikeun meungpeuk kasalahan nyaéta netepkeun pilihan "Config :: static_memory_maximum_size (0)" pikeun ngaktipkeun pamariksaan wates anu misah dina sadaya aksés mémori linier (hasilna pinalti kinerja anu signifikan) . Pilihan séjén nyaéta ngagunakeun setélan "Config :: static_memory_guard_size (1 <36)" pikeun nambahan jumlah Halaman Pengawal (pangecualian anu dialungkeun nalika diaksés) ditempatkeun dina rentang mémori maya anu bermasalah (hasilna nyéépkeun jumlah mémori virtual anu ageung sareng. ngawatesan jumlah sakaligus ngajalankeun aplikasi WebAssembly).

sumber: opennet.ru

Tambahkeun komentar