So-leòntachd èiginneach ann an Wasmtime, ùine ruith airson tagraidhean WebAssembly

Shuidhich na h-ùrachaidhean ceartachaidh Wasmtime 6.0.1, 5.0.1 agus 4.0.1 an so-leòntachd (CVE-2023-26489), a chaidh ìre èiginneach de chunnart a shònrachadh. Tha an so-leòntachd a’ leigeil le dàta a bhith air a sgrìobhadh gu raon cuimhne taobh a-muigh nan crìochan a tha ceadaichte airson còd iomallach WebAssembly, a dh’ fhaodadh neach-ionnsaigh a chleachdadh gus an còd aca a chuir an gnìomh taobh a-muigh àrainneachd iomallach WASI.

Is e àm ruith a th’ ann an Wasmtime airson a bhith a’ ruith thagraidhean WebAssembly le leudachaidhean WASI (WebAssembly System Interface) mar thagraidhean cunbhalach leotha fhèin. Tha an inneal air a sgrìobhadh anns a’ chànan Rust, agus tha an so-leòntachd air adhbhrachadh le mearachd loidsigeach ann a bhith a’ mìneachadh riaghailtean seòlaidh cuimhne sreathach ann an gineadair còd Cranelift, a bhios ag eadar-theangachadh riochdachadh eadar-mheadhanach neo-eisimeileach bho ailtireachd bathar-cruaidh gu còd inneal so-ghnìomhaichte airson an ailtireachd x86_64.

Gu sònraichte, airson tagraidhean WebAssembly, chaidh seòlaidhean èifeachdach 35-bit a thomhas an àite nan seòlaidhean 33-bit ceadaichte ann an WebAssembly, a ghluais crìoch na cuimhne brìgheil ceadaichte airson gnìomhachd leughaidh is sgrìobhaidh gu 34 GB, fhad ‘s a tha suidheachadh àrainneachd bogsa gainmhich a’ toirt dìon dha. 6 GB bhon t-seòladh bunaiteach. Mar thoradh air an sin, bha an raon cuimhne brìgheil bho 6 gu 34 GB bhon t-seòladh bunaiteach ri fhaighinn airson leughadh agus sgrìobhadh bho thagraidhean WebAssembly. Faodaidh an cuimhne seo aoigheachd a thoirt do àrainneachdan WebAssembly eile no co-phàirtean ùine ruith WebAssembly.

Mura h-eil e comasach an tionndadh Wasmtime ùrachadh, is e dòigh-obrach airson a’ mhearachd a bhacadh an roghainn “Config:: static_memory_maximum_size(0)” a shònrachadh gus sgrùdadh crìochan fa leth a chomasachadh air a h-uile inntrigeadh cuimhne sreathach (mar thoradh air peanas coileanaidh cudromach) . Is e roghainn eile an suidheachadh “Config::static_memory_guard_size(1 <36)” a chleachdadh gus an àireamh de Dhuilleagan Geàrd a mheudachadh (eisimpleir air a thilgeil nuair a gheibhear thuige) air a chuir anns an raon cuimhne brìgheil trioblaideach (mar thoradh air sin glèidheadh ​​​​mòran de chuimhne brìgheil agus a' cuingealachadh na h-àireimh a bhios a' ruith iarrtasan WebAssembly aig an aon àm).

Source: fosgailtenet.ru

Cuir beachd ann