Kritisk sårbarhet i Wasmtime, kjøretid for WebAssembly-applikasjoner

De korrigerende oppdateringene Wasmtime 6.0.1, 5.0.1 og 4.0.1 løste sårbarheten (CVE-2023-26489), som ble tildelt et kritisk farenivå. Sikkerhetsproblemet gjør at data kan skrives til et minneområde utenfor grensene som er tillatt for isolert WebAssembly-kode, som potensielt kan brukes av en angriper til å kjøre koden sin utenfor det isolerte WASI-miljøet.

Wasmtime er en kjøretid for å kjøre WebAssembly-applikasjoner med WASI-utvidelser (WebAssembly System Interface) som vanlige frittstående applikasjoner. Verktøysettet er skrevet på Rust-språket, og sårbarheten er forårsaket av en logisk feil ved å definere lineære minneadresseringsregler i Cranelift-kodegeneratoren, som oversetter en mellomrepresentasjon uavhengig av maskinvarearkitekturer til kjørbar maskinkode for x86_64-arkitekturen.

Spesielt for WebAssembly-applikasjoner ble 35-biters effektive adresser beregnet i stedet for 33-biters adresser som er tillatt i WebAssembly, noe som flyttet grensen for virtuelt minne tillatt for lese- og skriveoperasjoner til 34 GB, mens sandkassemiljøinnstillingene gir beskyttelse for 6 GB fra basisadressen. Som et resultat var det virtuelle minneområdet fra 6 til 34 GB fra basisadressen tilgjengelig for lesing og skriving fra WebAssembly-applikasjoner. Dette minnet kan være vert for andre WebAssembly-miljøer eller WebAssembly-kjøretidskomponenter.

Hvis det ikke er mulig å oppdatere Wasmtime-versjonen, er en løsning for å blokkere feilen å spesifisere alternativet "Config::static_memory_maximum_size(0)" for å aktivere en separat grensekontroll på alle lineære minnetilganger (som resulterer i en betydelig ytelsesstraff) . Et annet alternativ er å bruke "Config::static_memory_guard_size(1 < 36)"-innstillingen for å øke antall vaktsider (et unntak som blir kastet når de åpnes) plassert i det problematiske området for virtuelle minne (noe som resulterer i å reservere en stor mengde virtuelt minne og begrense antallet som samtidig kjører WebAssembly-applikasjoner).

Kilde: opennet.ru

Legg til en kommentar