Vulnerabilità critica in Wasmtime, runtime per applicazioni WebAssembly

Negli aggiornamenti correttivi di Wasmtime 6.0.1, 5.0.1 e 4.0.1 è stata risolta una vulnerabilità (CVE-2023-26489) classificata come critica. Questa vulnerabilità consente di effettuare la scrittura di dati in aree di memoria al di fuori dei limiti consentiti per il codice WebAssembly isolato, il che potrebbe essere sfruttato da un attaccante per eseguire il proprio codice al di fuori dell'ambiente isolato WASI.

Wasmtime è un runtime per l'esecuzione di applicazioni WebAssembly con estensioni WASI (WebAssembly System Interface) come comuni applicazioni isolate. Il toolkit è sviluppato in Rust e la vulnerabilità è causata da un errore logico nella definizione delle regole di indirizzamento della memoria nel generatore di codice Cranelift, che traduce una rappresentazione intermedia indipendente dall'architettura hardware in codice macchina eseguibile per l'architettura x86_64.

In particolare, per le applicazioni WebAssembly sono stati calcolati indirizzi efficaci a 35 bit invece degli indirizzi a 33 bit consentiti da WebAssembly, spostando il limite consentito per le operazioni di lettura e scrittura della memoria virtuale fino a 34 GB, mentre le impostazioni dell'ambiente sandbox forniscono protezione per 6 GB dall'indirizzo di base. Di conseguenza, l'intervallo di memoria virtuale da 6 a 34 GB dall'indirizzo di base risultava accessibile per lettura e scrittura dalle applicazioni WebAssembly. In questa memoria possono trovarsi altri ambienti WebAssembly o componenti del runtime WebAssembly.

Quando non è possibile aggiornare la versione di Wasmtime, come soluzioni alternative per bloccare l'errore si raccomanda di impostare l'opzione «Config::static_memory_maximum_size(0)» per attivare un controllo separato delle limiti ad ogni accesso alla memoria lineare (ciò comporta un notevole abbassamento delle prestazioni). Un'altra opzione è l'utilizzo dell'impostazione «Config::static_memory_guard_size(1 < 36)» per aumentare il numero di pagine di guardia in memoria (Guard Page, cui accesso genera un'eccezione) collocate nell'intervallo problematico della memoria virtuale (comporta la riservazione di un elevato volume di memoria virtuale e limita il numero di applicazioni WebAssembly eseguibili simultaneamente).

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster