Vulnerabilitet kritik në Wasmtime, runtime për aplikacionet WebAssembly

Në përditësimet korrigjuese Wasmtime 6.0.1, 5.0.1 dhe 4.0.1 është zgjidhur një vulnerabilitet (CVE-2023-26489) që i është dhënë një nivel kritiku rreziku. Ky vulnerabilitet lejon regjistrimin e të dhënave në një zonë memorie jashtë kufijve të lejuar për kodin e izoluar WebAssembly, çka potencialisht mund të shfrytëzohet nga një sulmues për të realizuar ekzekutimin e kodit të tij jashtë mjedisit të izoluar WASI.

Wasmtime është një runtime për ekzekutimin e aplikacioneve WebAssembly me zgjerime WASI (WebAssembly System Interface) si aplikacione të zakonshme të izoluar. Instrumenti është shkruar në gjuhën Rust, dhe vulnerabiliteti është shkaktuar nga një gabim logjik në përcaktimin e rregullave të adresimit linear të memories në gjeneratorin e kodit Cranelift, që përkthen një përfaqësim të pavarur nga arkitekturat harduerike në kodin gjenerik të ekzekutueshëm për arkitekturën x86_64.

Në veçanti, për aplikacionet WebAssembly janë llogaritur adresat efektive 35-bitëshe në vend të adresave 33-bitëshe të lejuara në WebAssembly, duke zhvendosur kufirin e lejuar për operacionet e leximit dhe shkruajtjes në memorie virtuale deri në 34 GB, ndërsa konfigurimet e mjedisit sandbox ofrojnë mbrojtje deri në 6 GB nga adresa bazë. Si pasojë, diapazoni i memories virtuale nga 6 deri në 34 GB nga adresa bazë ishte i aksesueshëm për lexim dhe shkruajtje nga aplikacionet WebAssembly. Në këtë memorie mund të vendosen mjedise të tjera WebAssembly ose komponente të runtime-it WebAssembly.

Në rastin kur përditësimi i versionit të Wasmtime është i pamundur, si zgjidhje për bllokimin e gabimit përmendet caktimi i opsionit "Config::static_memory_maximum_size(0)" për të përfshirë një kontroll të detyruar për kufijtë në çdo qasje në memorien lineare (kjo shkakton një rënie të konsiderueshme në performancë). Një tjetër opsion është përdorimi i konfigurimit "Config::static_memory_guard_size(1 < 36)" për të rritur numrin e faqeve mbrojtëse të memories (Guard Page, që shkakton një përjashtim gjatë qasjes), të cilat vendosen në diapazonin problematik të memories virtuale (kjo rezulton në rezervimin e një sasi të madhe të memories virtuale dhe kufizimin e numrit të aplikacioneve WebAssembly që mund të ekzekutohen njëkohësisht).

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster