CVE-2026-34988

LOW CVSS 4.0: 2,3 EPSS 0.01%
Обновлено 9 апреля 2026
Wasmtime
Параметр Значение
CVSS 2,3 (LOW)
Уязвимые версии до 36.0.7
Устранено в версии 36.0.7
Тип уязвимости CWE-119 (Переполнение буфера)
Поставщик Wasmtime
Публичный эксплойт Нет

Wasmtime — это среда выполнения WebAssembly. Начиная с версий 28.0.0 и до версий 36.0.7, 42.0.2 и 43.0.1, реализация распределителя пула Wasmtime содержит ошибку, из-за которой в определенных конфигурациях содержимое линейной памяти может перетекать из одного экземпляра в другой. Реализация сброса разрешений виртуальной памяти для линейной памяти использовала неправильный предикат для определения необходимости сброса, тогда как в процессе компиляции использовался другой предикат.

Это расхождение означало, что распределитель пула неправильно пришел к выводу во время выполнения, что сброс разрешений виртуальной памяти не требуется, в то время как во время компиляции определялось, что на виртуальную память можно положиться. Для использования этой уязвимости должен использоваться распределитель пула, параметр конфигурации Config::memory_guard_size должен быть равен 0, конфигурация Config::memory_reservation должна быть меньше 4 ГБ, а распределитель пула должен быть настроен с параметром max_memory_size, таким же, как значение Memory_reservation, чтобы использовать эту уязвимость. Если все эти условия применимы, то при повторном использовании линейной памяти разрешения виртуальной машины предыдущей итерации не сбрасываются.

Это означает, что скомпилированный код, предполагающий, что загрузка за пределами границ приведет к сбою сегмента, на самом деле не будет сбоем сегмента и может читать предыдущее содержимое линейной памяти, если оно было ранее отображено. Это представляет собой уязвимость утечки данных между гостевыми экземплярами WebAssembly, которая нарушает семантику WebAssembly и дополнительно нарушает изолированную программную среду, предоставляемую Wasmtime. Wasmtime не уязвим к этой проблеме ни с настройками по умолчанию, ни с настройками по умолчанию распределителя пула, но встраиваниям по-прежнему разрешено настраивать эти значения, чтобы вызвать эту уязвимость.

Эта уязвимость исправлена ​​в версиях 36.0.7, 42.0.2 и 43.0.1.

Показать оригинальное описание (EN)

Wasmtime is a runtime for WebAssembly. From 28.0.0 to before 36.0.7, 42.0.2, and 43.0.1, Wasmtime's implementation of its pooling allocator contains a bug where in certain configurations the contents of linear memory can be leaked from one instance to the next. The implementation of resetting the virtual memory permissions for linear memory used the wrong predicate to determine if resetting was necessary, where the compilation process used a different predicate. This divergence meant that the pooling allocator incorrectly deduced at runtime that resetting virtual memory permissions was not necessary while compile-time determine that virtual memory could be relied upon. The pooling allocator must be in use, Config::memory_guard_size configuration option must be 0, Config::memory_reservation configuration must be less than 4GiB, and pooling allocator must be configured with max_memory_size the same as the memory_reservation value in order to exploit this vulnerability. If all of these conditions are applicable then when a linear memory is reused the VM permissions of the previous iteration are not reset. This means that the compiled code, which is assuming out-of-bounds loads will segfault, will not actually segfault and can read the previous contents of linear memory if it was previously mapped. This represents a data leakage vulnerability between guest WebAssembly instances which breaks WebAssembly's semantics and additionally breaks the sandbox that Wasmtime provides. Wasmtime is not vulnerable to this issue with its default settings, nor with the default settings of the pooling allocator, but embeddings are still allowed to configure these values to cause this vulnerability. This vulnerability is fixed in 36.0.7, 42.0.2, and 43.0.1.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Высокая
Сложно эксплуатировать
Условия для атаки
Требуются
Нужны дополнительные условия
Нужны права
Низкие
Нужны базовые права
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Низкое
Частичная утечка данных
Целостность
Нет
Нет модификации данных
Доступность
Нет
Нет нарушения работы

Строка CVSS v4.0