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

Автор Сообщение
news_bot ®

Стаж: 6 лет 2 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
10-Мар-2023 20:56

В корректирующих обновлениях 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 ГБ, в то время как настройки sandbox-окружения предоставляют защиту для 6 ГБ от базового адреса. В итоге, диапазон виртуальной памяти от 6 до 34 ГБ от базового адреса оказывался доступен для чтения и записи из WebAssembly-приложений. В данной памяти могут размещаться другие окружения WebAssembly или компоненты WebAssembly runtime.
При невозможности обновить версию Wasmtime в качестве обходных путей для блокирования ошибки упоминается указание опции "Config::static_memory_maximum_size(0)" для включения обязательной отдельной проверки границ при любом доступе к линейной памяти (приводит к существенному снижению производительности). Другим вариантом является использование настройки "Config::static_memory_guard_size(1 < 36)" для увеличения числа с сторожевых страниц памяти (Guard Page, при обращении генерируется исключение), размещаемых в проблемном диапазоне виртуальной памяти (приводит к резервированию большого объёма виртуальной памяти и ограничению числа одновременно выполняемых WebAssembly-приложений).
===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_wasmtime, #_wasm, #_webassembly
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 23-Апр 15:54
Часовой пояс: UTC + 5