Критична уязвимост в Wasmtime, runtime за WebAssembly приложения

В коригиращите обновления на Wasmtime 6.0.1, 5.0.1 и 4.0.1 е отстранена уязвимост (CVE-2023-26489), на която е присвоен критичен риск. Уязвимостта позволява запис на данни в памет извън разрешените граници за изолиран WebAssembly код, което потенциално може да бъде използвано от нападателя за изпълнение на свой код извън изолираната среда WASI.

Wasmtime е runtime за изпълнение на WebAssembly приложения с разширения WASI (WebAssembly System Interface) като обособени приложения. Инструментарият е написан на Rust, а уязвимостта е причинена от логическа грешка при определяне на правилата за линейна адресация на паметта в компилатора Cranelift, който трансформира независимото от хардуерни архитектури междинно представяне в изпълняем машинен код за архитектура x86_64.

По-точно, за WebAssembly приложения са изчислявани 35-битови ефективни адреси вместо разрешените в WebAssembly 33-битови адреси, което е изместило границата за разрешените операции за четене и запис на виртуална памет до 34 GB, докато настройките на песъчливата среда осигуряват защита за 6 GB от базовия адрес. В крайна сметка, диапазонът на виртуалната памет от 6 до 34 GB от базовия адрес е ставам достъпен за четене и запис от WebAssembly приложения. В тази памет могат да се разположат други среди WebAssembly или компоненти на WebAssembly runtime.

При невъзможност да се актуализира версията на Wasmtime, за обходен начин за блокиране на грешката се споменава указаването на опцията „Config::static_memory_maximum_size(0)“ за активиране на задължителна отделна проверка на границите при всякакъв достъп до линейната памет (което води до съществено намаляване на производителността). Друг вариант е използването на настройката „Config::static_memory_guard_size(1 < 36)“ за увеличаване на броя на стражевите страници в паметта (Guard Page, при достъп се генерира изключение), разположени в проблемния диапазон на виртуалната памет (което води до резервиране на голям обем виртуална памет и ограничение на броя на едновременни WebAssembly приложения).

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster