Dve kritične greške u Wasmtimeu omogućavaju izlazak iz sandboxa

Bytecode Alliance je ispravio dve kritične ranjivosti u Wasmtimeu, izvršnom okruženju za WebAssembly van pregledača: CVE-2026-115889 pogađa sve arhitekture, a CVE-2026-115893 samo ARM64. Obe greške nose CVSS ocenu 9,9 i mogu omogućiti zlonamernom WebAssembly modulu da napusti predviđeni sandbox. Ispravke su objavljene 19. i 20. oktobra 2026, bez prijavljenih napada.
Rizik postoji kada napadač može da dostavi modul koji kontroliše servisu ili aplikaciji izgrađenoj sa ranjivom verzijom Wasmtimea. Sandbox inače ograničava modul na njegovu memoriju, dodeljene funkcije hosta i proverene tačke skoka u kodu. Savetodavna obaveštenja ne navode pogođene servise niti posledice nakon izlaska iz izolacije.
Cranelift je zajednički izvor problema
Obe ranjivosti nalaze se u Craneliftu, podrazumevanom kompajleru kojim Wasmtime prevodi WebAssembly u mašinski kod. CVE-2026-115889 potiče od načina na koji je Cranelift čuvao identifikatore vrednosti unutar funkcije. Pre verzije 43, identifikatori su bili smešteni u polja od 24 bita, pa je prevelika vrednost u produkcionom izdanju mogla da se prelije bez greške.
Takvo prelivanje može navesti kompajler da upotrebi pogrešnu vrednost i proizvede neispravan mašinski kod. Veoma velika ili posebno oblikovana WebAssembly funkcija sa mnogo vrednosti može time izazvati konfuziju tipova i izlazak iz sandboxa. Polja od 32 bita uvedena su u razvojnu granu 18. februara, objavljena u Wasmtimeu 43.0.0 20. marta, a u LTS granu 36.x preneta su 19. oktobra.
ARM64 problem sa instrukcijom br_table
CVE-2026-115893 odnosi se na instrukciju br_table, koja bira jedno od više odredišta skoka prema indeksu. Na ARM64 je Cranelift za indeks izvan tabele koristio grananje čiji je domet približno 1 MiB. Tabela sa više od oko 256.000 odredišta prevazilazi taj domet, zbog čega grananje može pokazati na pogrešno mesto.
Prema savetodavnom obaveštenju, korisnički kontrolisan Wasm modul tada može prisiliti Wasmtime engine sa podrazumevanim podešavanjima na ARM64 da skoči na proizvoljan kod. Greška postoji od podrške za ARM64 iz 2020. godine. Ispravka vodi indekse izvan opsega kroz samu tabelu skokova i odbija prevođenje br_table instrukcije sa više od 65.520 odredišta.
Verzije i koraci za otklanjanje rizika
Bezbedne verzije su Wasmtime 36.0.19, 48.0.7 i 49.0.4, dok je 50.0.0 ispravljen za obe ranjivosti. Grane 37.0.0 do 42.x pogođene su objema greškama, a grane 43.0.0 do 47.x i 48.0.0 do 48.0.6 pogođene su ARM64 ranjivošću. Linije 49.0.0 do 49.0.3 takođe zahtevaju prelazak na 49.0.4.
Ažuriranje komandne alatke nije dovoljno ako je Wasmtime ugrađen kao biblioteka: svaki program koji ga uključuje mora ponovo da se izgradi sa ispravljenom zavisnošću. Nepodržane grane moraju preći na podržano izdanje, jer za njih nema popravke. Organizacije bi zato trebalo da evidentiraju sve aplikacije koje kompajliraju module drugih strana, provere ARM64 okruženja i prioritizuju ponovno prevođenje komponenti sa Wasmtimeom.

