Vulnerabilità critica in Wasmtime, runtime per l'applicazioni WebAssembly

L'aghjurnamenti currettivi Wasmtime 6.0.1, 5.0.1 è 4.0.1 fissu a vulnerabilità (CVE-2023-26489), chì hè stata attribuita à un livellu criticu di periculu. A vulnerabilità permette di scrive dati in una zona di memoria fora di i limiti permessi per u codice WebAssembly isolatu, chì puderia esse adupratu da un attaccu per eseguisce u so codice fora di l'ambiente WASI isolatu.

Wasmtime hè un runtime per l'esecuzione di applicazioni WebAssembly cù estensioni WASI (WebAssembly System Interface) cum'è applicazioni stand-alone regulare. U toolkit hè scrittu in a lingua Rust, è a vulnerabilità hè causata da un errore logicu in a definizione di e regule lineari d'indirizzu di memoria in u generatore di codice Cranelift, chì traduce una rapprisintazioni intermediata indipendente di l'architetture hardware in codice di macchina eseguibile per l'architettura x86_64.

In particulare, per l'applicazioni WebAssembly, l'indirizzi effettivi di 35-bit sò stati calculati invece di l'indirizzi 33-bit permessi in WebAssembly, chì hà cambiatu u limitu di memoria virtuale permessa per l'operazioni di lettura è scrittura à 34 GB, mentre chì i paràmetri di l'ambiente sandbox furnisce a prutezzione per 6 GB da l'indirizzu di basa. In u risultatu, a gamma di memoria virtuale da 6 à 34 GB da l'indirizzu di basa era dispunibule per leghje è scrive da l'applicazioni WebAssembly. Questa memoria pò accoglie altri ambienti WebAssembly o cumpunenti di runtime WebAssembly.

Se ùn hè micca pussibule d'aghjurnà a versione Wasmtime, una soluzione per bluccà l'errore hè di specificà l'opzione "Config::static_memory_maximum_size(0)" per attivà una verificazione di i limiti separati in tutti l'accessi di memoria lineari (risultà in una penalità significativa di rendiment) . Un'altra opzione hè di utilizà l'impostazione "Config::static_memory_guard_size(1 < 36)" per aumentà u nùmeru di pagine di guardia (un'eccezzioni ghjittata quandu si accede) pusatu in a gamma di memoria virtuale problematica (risultà in riservà una grande quantità di memoria virtuale è limitazione di u numeru in esecuzione simultanea di applicazioni WebAssembly).

Source: opennet.ru

Add a comment