Wasmtime ရဟိ အရေသပါသော အာသနည်သချက်၊ WebAssembly အပလီကေသရဟင်သမျာသအတလက် runtime

Wasmtime 6.0.1၊ 5.0.1 နဟင့် 4.0.1 မဟန်ကန်သော အပ်ဒိတ်မျာသသည် Critical အဆင့်သတ်မဟတ်ထာသသည့် အာသနည်သချက် (CVE-2023-26489) ကို ပဌုပဌင်ပေသသည်။ အာသနည်သချက်သည် သီသခဌာသ WASI ပတ်၀န်သကျင်အပဌင်ဘက်တလင် ၎င်သတို့၏ကုဒ်၏လုပ်ဆောင်မဟုကို စီစဉ်ရန် တိုက်ခိုက်သူမဟ အသုံသပဌုနိုင်သည့် သီသခဌာသ WebAssembly ကုဒ်အတလက် ခလင့်ပဌုထာသသည့် နယ်နိမိတ်မျာသအပဌင်ဘက်ရဟိ မဟတ်ဉာဏ်ဧရိယာတစ်ခုသို့ ဒေတာစာရေသခဌင်သကို စုစည်သခလင့်ပဌုသည်။

Wasmtime သည် ပုံမဟန်သီသသန့် အပလီကေသရဟင်သမျာသကဲ့သို့ WASI (WebAssembly System Interface) တိုသချဲ့မဟုမျာသဖဌင့် WebAssembly အပလီကေသရဟင်သမျာသကို လုပ်ဆောင်ရန် အချိန်တစ်ခုဖဌစ်သည်။ ကိရိယာတန်ဆာပလာကို Rust ဖဌင့် ရေသသာသထာသပဌီသ၊ အာသနည်သချက်မဟာ Cranelift ကုဒ် ဂျင်နရေတာရဟိ မျဉ်သမဟတ်ဉာဏ်လိပ်စာဆိုင်ရာ စည်သမျဉ်သမျာသ၏ အဓိပ္ပါယ်ဖလင့်ဆိုချက်တလင် ယုတ္တိနည်သဖဌင့် အမဟာသအယလင်သဖဌစ်ရခဌင်သဖဌစ်ပဌီသ၊ ၎င်သသည် ဟာ့ဒ်ဝဲဗိသုကာမျာသ၏ အလယ်အလတ်ကိုယ်စာသပဌုမဟုကို x86_64 ဗိသုကာအတလက် လည်ပတ်နိုင်သော စက်ကုဒ်အဖဌစ်သို့ ဘာသာပဌန်ပေသသော Cranelift code generator တလင် ဖဌစ်သည်။

အထူသသဖဌင့်၊ WebAssembly တလင်ခလင့်ပဌုထာသသည့် 35-bit လိပ်စာမျာသအစာသ WebAssembly အပလီကေသရဟင်သမျာသအတလက် 33-bit ထိရောက်သောလိပ်စာမျာသကို တလက်ချက်ထာသပဌီသ၊ ၎င်သသည် ဖတ်ရဟုခဌင်သနဟင့်ရေသခဌင်သလုပ်ဆောင်ခဌင်သအတလက် ခလင့်ပဌုထာသသည့် virtual memory ၏ကန့်သတ်ချက်ကို 34 GB သို့ပဌောင်သသလာသကာ sandbox ပတ်ဝန်သကျင်ဆက်တင်မျာသက 6 GB အတလက် အကာအကလယ်ပေသပါသည်။ အခဌေခံလိပ်စာကနေ။ ရလဒ်အနေဖဌင့်၊ အခဌေခံလိပ်စာမဟ 6 မဟ 34 GB မဟ virtual memory အကလာအဝေသကို WebAssembly အပလီကေသရဟင်သမျာသမဟ စာဖတ်ခဌင်သနဟင့် စာရေသခဌင်သတို့အတလက် ရနိုင်ပါသည်။ ကမဟတ်ဉာဏ်သည် အခဌာသသော WebAssembly ပတ်ဝန်သကျင်မျာသ သို့မဟုတ် WebAssembly runtime အစိတ်အပိုင်သမျာသကို လက်ခံဆောင်ရလက်ပေသနိုင်သည်။

Wasmtime ဗာသရဟင်သကို အပ်ဒိတ်လုပ်ရန် မဖဌစ်နိုင်ပါက၊ "Config::static_memory_maximum_size(0)" ရလေသချယ်မဟုကို သတ်မဟတ်ခဌင်သတလင် မည်သည့် linear memory access ကိုမဆို စစ်ဆေသခဌင်သတလင် မဖဌစ်မနေ စစ်ဆေသခဌင်သကို ဖလင့်ရန် အမဟာသအယလင်သကို ပိတ်ဆို့ရန် ဖဌေရဟင်သနည်သမျာသအဖဌစ် ဖော်ပဌခဌင်သဖဌစ်သည် (သိသိသာသာ စလမ်သဆောင်ရည် ကျဆင်သသလာသခဌင်သ ရလဒ်မျာသ)။ အခဌာသရလေသချယ်စရာမဟာ ပဌဿနာရဟိသော virtual memory range တလင်ရဟိသော guard pages အရေအတလက်ကို တိုသမဌဟင့်ရန် "Config::static_memory_guard_size(1 < 36)" ကိုအသုံသပဌုရန် (Guard Page၊ ဝင်ရောက်သည့်အခါ ချလင်သချက်တစ်ခုသည် ချလင်သချက်တစ်ခုဖဌစ်သည်) (ပမာဏမျာသစလာကို ကဌိုတင်မဟာယူမဟုဖဌစ်စေသည် virtual memory နဟင့် တစ်ပဌိုင်တည်သ WebAssembly အပလီကေသရဟင်သ အရေအတလက်ကို ကန့်သတ်ခဌင်သ)။

source: opennet.ru

မဟတ်ချက် Add