Vulnerabilitate critică în Wasmtime, runtime pentru aplicații WebAssembly

În actualizările corective Wasmtime 6.0.1, 5.0.1 și 4.0.1 a fost eliminată vulnerabilitatea (CVE-2023-26489), care a fost clasificată cu un nivel critic de pericol. Vulnerabilitatea permite înregistrarea datelor în zona de memorie dincolo de limitele permise pentru codul WebAssembly izolat, ceea ce poate fi utilizat în mod potențial de un atacator pentru a executa codul său în afara mediului izolat WASI.

Wasmtime este un runtime pentru executarea aplicațiilor WebAssembly cu extensii WASI (Interfața de Sistem WebAssembly) ca aplicații izolate obișnuite. Instrumentul este scris în limbajul Rust, iar vulnerabilitatea a fost cauzată de o eroare logică în definirea regulilor de adresare liniară a memoriei în generatorul de cod Cranelift, care transpune o reprezentare intermediară, independentă de arhitectura hardware, în cod mașină executabil pentru arhitectura x86_64.

În special, pentru aplicațiile WebAssembly au fost calculate adrese eficiente de 35 de biți în loc de adresele permise de 33 de biți în WebAssembly, ceea ce a mutat limita permisă pentru operațiile de citire și scriere a memoriei virtuale până la 34 GB, în timp ce setările mediului sandbox oferă protecție pentru 6 GB de la adresa de bază. În consecință, intervalul de memorie virtuală de la 6 la 34 GB de la adresa de bază a devenit disponibil pentru citire și scriere din aplicațiile WebAssembly. În această memorie pot fi plasate alte medii WebAssembly sau componente ale runtime-ului WebAssembly.

În cazul în care nu este posibil să actualizați versiunea Wasmtime, ca soluții alternative pentru a bloca eroarea se menționează specificarea opțiunii „Config::static_memory_maximum_size(0)” pentru a activa o verificare separată obligatorie a limitelor la orice acces la memoria liniară (ceea ce duce la o reducere semnificativă a performanței). O altă variantă este utilizarea setării „Config::static_memory_guard_size(1 < 36)” pentru a crește numărul de pagini de gardă în memorie (Guard Page, care generează o excepție la acces), plasate în intervalul problematic de memorie virtuală (ceea ce duce la rezervarea unei cantități mari de memorie virtuală și limitarea numărului de aplicații WebAssembly care pot fi executate simultan).

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster