CVE-2026-104855
NiskieCVSS 2.0Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 18 - wyżej niż 18% wszystkich znanych CVE
Streszczenie
Wasmtime to środowisko uruchomieniowe dla WebAssembly. Od wersji 46.0.0 do 46.0.2 i 47.0.3 sprawdzenia preempcji fuel i epoch wewnątrz operacji zbiorczych, w tym memory.copy, table.grow i array.copy, mogą ujawnić nieprawidłowy stan pośredni, gdy embedder modyfikuje Store w Store::epoch_deadline_callback lub kontynuuje używanie Store po anulowaniu lub trapie. Może to skutkować awarią, nieprawidłowym dostępem do pamięci lub uszkodzeniem sterty GC.
Ocena ryzyka
Nieprawidłowy stan pośredni może prowadzić do awarii aplikacji, nieprawidłowego dostępu do pamięci lub uszkodzenia sterty GC. Może to zostać wykorzystane do destabilizacji lub potencjalnego wykonania kodu w środowiskach osadzających Wasmtime z podatnymi callbackami.
Rekomendacja
Zaktualizuj Wasmtime do wersji 46.0.2 lub 47.0.3. Jeśli Twoje osadzenie nie modyfikuje Store w callbackach i odrzuca Store po przekroczeniu limitu czasu, nie jest narażone.
Inne podatności w Wasmtime
Zobacz wszystkie- CVE-2026-58494Średnie
Wasmtime to środowisko uruchomieniowe dla WebAssembly. Przed wersjami 24.0.11, 36.0.12, 45.0.3 i 46.0.1, komponent wasmtime-wasi podczas tworzenia twardych dowiązań i zmiany nazw sprawdzał uprawnienia katalogów, ale nie uwzględniał uprawnień FilePerms dla źródłowych i docelowych preopenów. Umożliwiało to gościowi WASI z uprawnieniami tylko do odczytu źródłowego pliku nadpisanie plików hosta udostępnionych jako FilePerms::READ przez interfejsy systemów plików wasip1, wasip2 lub wasip3.
- CVE-2026-54786Średnie
Wasmtime do wersji 24.0.10, 36.0.11, 44.0.3 oraz 45.0.2 zawiera podatność w natywnej implementacji WASIp1, gdzie funkcja fd_renumber nie zamyka prawidłowo deskryptora pliku, do którego następuje przepisanie. Powoduje to wyciek zasobów w systemie gospodarza, który może prowadzić do wyczerpania dostępnych deskryptorów plików i zasobów.
- CVE-2026-47261Wysokie
Wasmtime, środowisko uruchomieniowe dla WebAssembly, ma lukę w wersjach przed 24.0.9, 36.0.10 i 44.0.2, która pozwala na obejście mechanizmu kontroli dostępu przy użyciu interfejsów wasip2 descriptor.open-at lub wasip1 path_open. Problem wynika z braku odpowiedniego ustawienia trybu otwarcia, co umożliwia otwarcie pliku z flagą OpenFlags::TRUNCATE bez odpowiednich uprawnień do zapisu.
- CVE-2026-44216Wysokie
Wasmtime od wersji 30.0.0 do 36.0.8, 43.0.2 i 44.0.1 zawiera podatność na panikę przy alokacji bardzo dużych tablic WebAssembly. Problem wynika z arytmetyki sprawdzającej przepełnienie, która powoduje panikę przy próbie utworzenia tablicy o rozmiarze 64-bitowym (zgodnym z propozycją memory64). Atakujący może wywołać panikę poprzez dostarczenie modułu lub komponentu WebAssembly z żądaniem utworzenia ekstremalnie dużej tablicy.
- CVE-2026-34971Wysokie
Wasmtime w wersjach od 32.0.0 do 36.0.7, 42.0.2 i 43.0.1 zawiera błąd w kompilatorze Cranelift na architekturze aarch64, który powoduje nieprawidłowe obliczanie adresów pamięci przy dostępie do sterty. Błąd umożliwia modułom WebAssembly ominięcie kontroli granic i uzyskanie dostępu do dowolnej pamięci hosta, co prowadzi do ucieczki z piaskownicy.
- CVE-2025-62711Niskie
Wasmtime, środowisko uruchomieniowe dla WebAssembly, zawiera podatność w wersjach od 38.0.0 do przed 38.0.3. Błąd w implementacji trampolin host-to-wasm związanych z modelem komponentów umożliwia staranne spreparowanie komponentu, który przy wywołaniu w określony sposób może spowodować awarię hosta z segfaultem lub błędem asercji. Wydano wersję 38.0.3 z poprawką. Brak obejść.
Oryginalny opis (angielski, źródło NVD)
Wasmtime is a runtime for WebAssembly. From 46.0.0 until 46.0.2 and 47.0.3, fuel and epoch preemption checks inside bulk operations including memory.copy, table.grow, and array.copy can expose invalid intermediate state when an embedder mutates a Store in Store::epoch_deadline_callback or continues using a Store after cancellation or a trap. A cancelled non-nullable table growth can leave null elements, linear-memory growth during memory.copy can invalidate retained raw pointers, and callback-triggered garbage collection during array.copy can invalidate GC pointers, resulting in a crash, invalid memory access, or GC heap corruption. Embeddings whose callbacks only access the host data in Store<T>, and embeddings that discard a Store after timeout or epoch deadline, are not affected. This issue is fixed in versions 46.0.2 and 47.0.3.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

