Krytyczna luka w Wasmtime, runtime dla aplikacji WebAssembly

W aktualizacjach Wasmtime 6.0.1, 5.0.1 i 4.0.1 usunięto lukę (CVE-2023-26489), której przypisano krytyczny poziom zagrożenia. Luka ta umożliwia zapis danych do obszaru pamięci poza granicami dozwolonymi dla zisolowanego kodu WebAssembly, co potencjalnie może zostać wykorzystane przez atakującego do wykonania swojego kodu poza zisolowanym środowiskiem WASI.

Wasmtime to runtime do wykonywania aplikacji WebAssembly z rozszerzeniami WASI (WebAssembly System Interface) jako zwykłych odizolowanych aplikacji. Narzędzie zostało napisane w języku Rust, a luka została spowodowana błędem logicznym przy określaniu zasad liniowego adresowania pamięci w generatorze kodu Cranelift, który tłumaczy niezależną od architektury reprezentację pośrednią na wykonywalny kod maszynowy dla architektury x86_64.

W przypadku aplikacji WebAssembly obliczono 35-bitowe efektywne adresy zamiast dozwolonych w WebAssembly 33-bitowych adresów, co przesuwało granicę dozwoloną dla operacji odczytu i zapisu pamięci wirtualnej do 34 GB, podczas gdy ustawienia środowiska sandbox zapewniają ochronę dla 6 GB od adresu podstawowego. Ostatecznie zakres pamięci wirtualnej od 6 do 34 GB od adresu podstawowego był dostępny do odczytu i zapisu przez aplikacje WebAssembly. W tej pamięci mogą mieścić się inne środowiska WebAssembly lub komponenty runtime WebAssembly.

W przypadku braku możliwości zaktualizowania wersji Wasmtime jako obejścia dla zablokowania błędu, sugeruje się ustawienie opcji „Config::static_memory_maximum_size(0)” w celu włączenia obowiązkowej, osobnej kontroli granic przy każdym dostępie do pamięci liniowej (co prowadzi do znacznego spadku wydajności). Inną opcją jest użycie ustawienia „Config::static_memory_guard_size(1 < 36)” w celu zwiększenia liczby stron ochronnych pamięci (Guard Page, przy dostępie generowane jest wyjątek), umieszczanych w problematycznym zakresie pamięci wirtualnej (co prowadzi do rezerwacji dużych ilości pamięci wirtualnej i ograniczenia liczby jednocześnie wykonywanych aplikacji WebAssembly).

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster