
Дві критичні вразливості Wasmtime можуть дозволити шкідливим модулям WebAssembly вийти з пісочниці
Супровідники Wasmtime кажуть, що дві критичні вразливості Cranelift можуть дозволити шкідливим модулям WebAssembly вийти за межі пісочниці. Виправлені випуски вийшли 19 і 20 жовтня, про атаки не повідомляли.
Дві критичні вразливості у Wasmtime, середовищі виконання WebAssembly, яке можна вбудовувати в інше програмне забезпечення, можуть дозволити шкідливому модулю WebAssembly вийти з пісочниці, повідомляють супровідники проєкту. Спочатку зловмиснику потрібна вразлива збірка для компіляції модуля під його контролем, а одна з вразливостей впливає лише на системи ARM64. Виправлені версії випустили 19 і 20 жовтня, і супровідники не повідомляли про атаки.
Що під загрозою
Обидві помилки є в Cranelift, компіляторі, який Wasmtime використовує за замовчуванням. CVE-2026-115889 впливає на всі архітектури процесорів, тоді як CVE-2026-115893 впливає лише на ARM64, також відомий як aarch64. Bytecode Alliance оцінила кожну вразливість у 9.9 з 10 за шкалою CVSS. Ризик найвищий для сервісів, які компілюють модулі, написані іншими людьми; Fastly каже, що її платформа Compute запускає код клієнтів за допомогою Wasmtime. Рекомендації не називають постраждалі сервіси й не вказують, до чого зловмисник міг би отримати доступ після виходу з пісочниці. Жодна з вразливостей не була в каталозі відомих експлуатованих вразливостей CISA станом на 26 жовтня.
Виправлення версій
Виправлені випуски: 36.0.19, 48.0.7, 49.0.4 і 50.0.0. Збірки до 36.0.19, версії від 37.0.0 до 42.x, версії від 43.0.0 до 47.x, від 48.0.0 до 48.0.6 і від 49.0.0 до 49.0.3 на ARM64 потребують оновлення. Хости на непідтримуваних лініях мають перейти на підтримуваний випуск. Підтримуються лише лінії випусків 36, 48, 49 і 50; підтримка лінії 24.x LTS завершилася 20 серпня 2026 року, і вона не отримала виправлення. Хости ARM64, які оновилися у квітні для виправлення попереднього виходу з пісочниці Cranelift, усе ще піддаються впливу CVE-2026-115893.
Як працюють вразливості
CVE-2026-115889 виникає через те, що Cranelift до версії 43 зберігав номери відстеження значень у 24-бітних полях. У релізних збірках число, що було завеликим для свого поля, переповнювалося без помилки, тож Cranelift міг послатися на неправильне значення й створити некоректний машинний код. Дуже велика або спеціально створена функція WebAssembly може використати це для примусової плутанини типів і виходу з пісочниці. Основна лінія розробки Wasmtime розширила поля до 32 бітів у версії 43.0.0 20 березня, а лінія 36.x LTS отримала таку саму зміну 19 жовтня. CVE-2026-115893 стосується br_table на ARM64. Індекси поза діапазоном надсилалися до цілі за замовчуванням гілкою, яка може досягти приблизно 1 MiB, тож br_table з більш ніж приблизно 256,000 цілей робила таблицю переходів завеликою, а гілка мовчки вказувала на неправильне місце. Помилка була присутня з того часу, як Wasmtime уперше підтримав ARM64 у 2020 році. Виправлення надсилає індекси поза діапазоном через таблицю переходів і відмовляється компілювати br_table з більш ніж 65,520 цілей.
Інші подробиці
Wasmtime можна вбудувати в інші програми як бібліотеку, тож оновлення інструмента командного рядка їх не виправляє; кожну програму, що містить Wasmtime, потрібно перебудувати з виправленою версією. Жодна з рекомендацій не містить обхідного шляху. Обидві вразливості перелічені в RustSec як RUSTSEC-2026-0380 і RUSTSEC-2026-0379. Станом на 26 жовтня база рекомендацій GitHub мала перевірений запис для CVE-2026-115889, але не для CVE-2026-115893, і GitHub каже, що лише перевірені записи запускають сповіщення Dependabot. Spin перейшов на Wasmtime 50.0.0 у версії 4.2.4 21 жовтня.
Джерела: The Hacker News
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.