Vulnerabilità critica in Wasmtime, runtime per applicazioni WebAssembly

Negli aggiornamenti correttivi Wasmtime 6.0.1, 5.0.1 e 4.0.1 è stata risolta una vulnerabilità (CVE-2023-26489) classificata con livello di gravità critico. Questa vulnerabilità consente di scrivere dati in aree di memoria al di fuori dei limiti consentiti per il codice WebAssembly isolato, potenzialmente sfruttabile 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 normali applicazioni isolate. L'implementazione è scritta 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 in 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 offrono protezione fino a 6 GB dall'indirizzo base. Di conseguenza, l'intervallo di memoria virtuale da 6 a 34 GB dall'indirizzo base risultava accessibile per la lettura e la scrittura dalle applicazioni WebAssembly. In questa memoria possono risiedere altri ambienti WebAssembly o componenti del runtime WebAssembly.

In caso di impossibilità di aggiornare la versione di Wasmtime, come soluzioni alternative per bloccare il bug viene menzionata l'opzione 'Config::static_memory_maximum_size(0)' per abilitare un controllo separato obbligatorio dei limiti ad ogni accesso alla memoria lineare (riducendo notevolmente le prestazioni). Un'altra opzione è utilizzare l'impostazione 'Config::static_memory_guard_size(1 < 36)' per aumentare il numero delle pagine di guardia in memoria (Guard Page, che genera un'eccezione durante l'accesso) posizionate nell'intervallo problematico della memoria virtuale (portando alla riservazione di un ampio quantità di memoria virtuale e limitando il numero di applicazioni WebAssembly eseguite simultaneamente).

Fonte: opennet.ru

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