CVE-2026-115889
KrytyczneCVSS 9.9Streszczenie
Wasmtime przed wersjami 36.0.19 i 43.0.0 ma błąd w kompilatorze Cranelift polegający na cichym przepełnieniu indeksów SSA przy kompilacji dużych funkcji Wasm. Może to prowadzić do błędnej kompilacji, pomieszania typów i ucieczki z sandboxa.
Ocena ryzyka
Atakujący może wykorzystać złośliwy moduł Wasm do wykonania dowolnego kodu poza sandboxem na dowolnej architekturze z domyślnym backendem Cranelift.
Rekomendacja
Zaktualizuj Wasmtime do wersji 36.0.19 lub 43.0.0. Unikaj uruchamiania niezaufanych modułów Wasm do czasu aktualizacji.
Inne podatności w Wasmtime
Zobacz wszystkie- CVE-2026-115892Średnie
Wasmtime od wersji 46.0.0 do 48.0.7 i 49.0.4 przy obniżaniu utworzonego przez hosta strumienia lub future modelu komponentów do gościa może pominąć wymaganą kontrolę typu ładunku po przejściu wartości przez kod gościa i powrocie przez StreamAny, FutureAny, Val::Stream, Val::Future lub równoważny czytnik typowany; złośliwy gość może spowodować panikę hosta Wasmtime.
- CVE-2026-115893Krytyczne
Wasmtime przed wersjami 36.0.19, 48.0.7 i 49.0.4 posiada błąd w kompilatorze Cranelift na architekturze aarch64. Instrukcja br_table z ponad 256 000 celów może zostać błędnie skompilowana, umożliwiając skok do dowolnego kodu i ucieczkę z sandboxa.
- CVE-2026-115384Krytyczne
Wasmtime w wersjach 39.0.0 przed 48.0.4 oraz 49.0.0 przed 49.0.2 zawiera przepełnienie bufora stosu, które pozwala złośliwym gościom zapisać około 16 KB na natywnym stosie poprzez niezwalidowane typy wyników asynchronicznych wywołań zwrotnych. Atakujący może dostarczyć komponenty z błędnie otypowanymi funkcjami callback component-model-async, aby nadpisać adresy powrotu, powodując awarię hosta lub ucieczkę z piaskownicy.
- CVE-2026-115393Niskie
Wasmtime w wersjach przed 24.0.12, 25.0.0 przed 36.0.13, 37.0.0 przed 46.0.2 oraz 47.0.0 przed 47.0.3 zawiera podatność na mylenie typów, ponieważ kilka API Store nie sprawdza, czy obiekty należą do Engine danego Store. Osadnicy mieszający obiekty między Engine'ami za pomocą Instance::new, StructRefPre::new lub Tag::new mogą wywołać niezgodności sygnatur trampolin, powodując zapisy poza granicami stosu, uszkodzenie sterty GC lub paniki.
- CVE-2026-115392Wysokie
W Wasmtime w wersjach przed 24.0.13, 25.0.0–36.0.14, 37.0.0–46.0.3 oraz 47.0.0–47.0.4 występuje ucieczka z piaskownicy systemu plików w wasmtime-wasi. Zależność cap-std nieprawidłowo obsługuje dowiązania symboliczne z końcowym ukośnikiem na macOS oraz na jądrach Linux bez openat2.
- CVE-2026-115391Średnie
Wasmtime 46.0.0 przed 46.0.3 oraz 47.0.0 przed 47.0.4 zawiera podatność niekontrolowanej alokacji zasobów w implementacji WASIp3, która buforuje na hoście zapisy o długości określonej przez gościa bez limitu. Złośliwi goście mogą oferować duże bufory do strumieni zapisu plików lub HTTP WASIp3, powodując kopiowanie i buforowanie wszystkich bajtów przez hosta, ograniczone jedynie pamięcią liniową gościa, co wyczerpuje pamięć hosta.
- CVE-2026-115390Średnie
Wasmtime 47.0.0 przed 48.0.3 oraz 49.0.0 przed 49.0.1 zawiera błąd rozliczania paliwa w ścieżkach call_ref i try_table catch kompilowanych przez Cranelift. Złośliwi goście mogą resetować zużyte paliwo po wywołaniach, aby działać wykładniczo długo przy liniowym paliwie, omijając limity czasu i okresowe ustępowania, co prowadzi do odmowy usługi.
- CVE-2026-115389Niskie
Wasmtime w wersjach przed 36.0.16, 37.0.0–48.0.3 oraz 49.0.0–49.0.1 nie uwzględnia odpowiednio alokacji hosta podczas podnoszenia wartości gościa przez dynamicznie typowane API Val, omijając limit paliwa hostcall. Złośliwy gość WebAssembly może zwrócić spreparowane wartości alokujące co najmniej ~100x więcej pamięci hosta niż śledzone, powodując odmowę usługi.
- CVE-2026-115388Średnie
W wasmtime-wasi-http w Wasmtime nie jest egzekwowany limit check-write dla wychodzących ciał HTTP w WASIp2, więc zbyt duże zapisy kończą się sukcesem zamiast pułapki. Złośliwy gość może przekazywać duże bufory do zapisu na zasobach wychodzącego ciała, utrzymując alokacje hosta przez czas życia store i wyczerpując pamięć hosta.
- CVE-2026-115387Średnie
W Wasmtime w wasmtime-wasi istnieje luka umożliwiająca programom gościa WASI wywołanie paniki hosta poprzez przepełnienie znaczników czasu systemu plików. Atakujący mogą przekazać wartości atim lub mtim, których pole podsekundowe przepełnia pole sekund, do path_filestat_set_times, fd_filestat_set_times, set-times lub set-times-at, powodując awarię hosta.
Oryginalny opis (angielski, źródło NVD)
Wasmtime is a runtime for WebAssembly. Prior to 36.0.19 and 43.0.0, the Cranelift compiler backend bit-packs SSA value indices in a way that can silently overflow in release builds when compiling a sufficiently large or specially crafted Wasm function with many SSA values. The overflow can make Cranelift reference incorrect IR values, causing arbitrary miscompilation, type confusion, and other attacker-controlled effects that may escape the Wasm sandbox on any architecture using the default Cranelift backend. This issue is fixed in versions 36.0.19 and 43.0.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

