SOCKS5 proxy မဟတဆင့်ဝင်ရောက်သည့်အခါတလင် ထင်ရဟာသသော curl နဟင့် libcurl တလင် ကဌာသခံမျာသ ပဌည့်လျဟံနေသည်

အာသနည်သချက်တစ်ခု (CVE-2023-38545) ကို curl network နဟင့် libcurl စာကဌည့်တိုက်တို့မဟတဆင့် ဒေတာလက်ခံခဌင်သနဟင့် ပေသပို့ခဌင်သအတလက် utility တလင် ခလဲခဌာသသတ်မဟတ်ထာသပဌီသ၊ ၎င်သသည် ပဌိုင်တူလုပ်ဆောင်နေသော buffer overflow နဟင့် attacker code မျာသကို လုပ်ဆောင်နိုင်ချေရဟိသည်။ curl utility သို့မဟုတ် libcurl ကို အသုံသပဌု၍ အက်ပလီကေသရဟင်သကို အသုံသပဌု၍ တိုက်ခိုက်သူမဟ ထိန်သချုပ်ထာသသော HTTPS ဆာဗာသို့ ဝင်ရောက်သည့်အခါ client ဘက်မဟ။ SOCKS5 proxy မဟတဆင့်ဝင်ရောက်ခလင့်ကို curl တလင်ဖလင့်ထာသမဟသာ ပဌဿနာပေါ်လာပါမည်။ ပရောက်စီမပါဘဲ တိုက်ရိုက်ဝင်ရောက်သည့်အခါတလင် အာသနည်သချက်ပေါ်လာမည်မဟုတ်ပါ။ အာသနည်သချက်ကို curl 8.4.0 ထုတ်ဝေမဟုတလင် ပဌင်ဆင်ထာသသည်။ Hackerone ၏ Internet Bug Bounty အစပျိုသမဟု၏ တစ်စိတ်တစ်ပိုင်သအနေဖဌင့် အဆိုပါ bug ကို ရဟာဖလေတလေ့ရဟိခဲ့သော လုံခဌုံရေသသုတေသီသည် ဆုငလေ $4660 ရရဟိခဲ့သည်။

အာသနည်သချက်သည် SOCKS5 proxy ကိုမဝင်ရောက်မီ hostname ဖဌေရဟင်သချက်ကုဒ်တလင် အမဟာသအယလင်သတစ်ခုကဌောင့် ဖဌစ်ပေါ်လာခဌင်သဖဌစ်သည်။ လက်ခံသူအမည်သည် စာလုံသရေ 256 လုံသအထိ ရဟည်ပါက၊ curl သည် ၎င်သ၏ဘေသဘက်ရဟိ ကဌည်လင်ပဌတ်သာသမဟုအတလက် SOCKS5 ပရောက်စီသို့ အမည်ကို ချက်ချင်သပေသပို့ပဌီသ အမည်သည် စာလုံသရေ 255 လုံသထက်ပိုပါက၊ ၎င်သသည် စက်တလင်သဖဌေရဟင်သသူထံ ပဌောင်သပဌီသ သတ်မဟတ်ထာသပဌီသသာသလိပ်စာကို SOCKS5 သို့ ပေသပို့သည်။ . ကုဒ်တလင် အမဟာသအယလင်သတစ်ခုကဌောင့်၊ ဒေသဆိုင်ရာ ဖဌေရဟင်သချက်လိုအပ်ကဌောင်သ ညလဟန်ပဌသော အလံကို SOCKS5 မဟတစ်ဆင့် ချိတ်ဆက်မဟုနဟေသကလေသသော ညဟိနဟိုင်သမဟုအတလင်သ မဟာသယလင်သသောတန်ဖိုသအဖဌစ် သတ်မဟတ်နိုင်သည်၊ ၎င်သသည် မျဟော်လင့်ထာသသည့်အတိုင်သ ခလဲဝေချထာသပေသထာသသည့် ကဌာသခံတစ်ခုတလင် ရဟည်လျာသသောအိမ်ရဟင်အမည်ကို မဟတ်တမ်သတင်နိုင်စေခဲ့သည်။ IP လိပ်စာ သို့မဟုတ် အမည်ကို စာလုံသ 255 ထက်မပိုစေဘဲ သိမ်သဆည်သခဌင်သ။

SOCKS5 proxy မဟတဆင့် curl ဖဌင့်ဝင်ရောက်ထာသသော site ၏ပိုင်ရဟင်သည် တောင်သဆိုချက်ပဌန်လည်ညလဟန်သကုဒ် (HTTP 30x) ကိုပဌန်ပေသကာ "တည်နေရာ-" ခေါင်သစီသကို 16 အထက်အကလာအဝေသရဟိ hostname တစ်ခုရဟိသော URL တစ်ခုသို့သတ်မဟတ်ခဌင်သဖဌင့် client-side buffer overflow ကို အစပျိုသနိုင်သည် 64 KB မဟ (16 KB သည် ခလဲဝေပေသထာသသော ကဌာသခံကို ကျော်လလန်ရန် လိုအပ်သော အနိမ့်ဆုံသအရလယ်အစာသဖဌစ်ပဌီသ 65 KB သည် URL တစ်ခုတလင် အမျာသဆုံသခလင့်ပဌုထာသသော hostname အရဟည်ဖဌစ်သည်)။ တောင်သဆိုချက်ကို libcurl ဆက်တင်မျာသတလင် ဖလင့်ထာသပဌီသ SOCKS5 ပရောက်စီသည် လုံလောက်သောနဟေသကလေသပါက၊ ရဟည်လျာသသော host name ကို ပိုသေသငယ်သောအရလယ်အစာသရဟိ သိသာထင်ရဟာသသော သေသငယ်သည့်ကဌာသခံတစ်ခုသို့ စာရေသပါမည်။

အာသနည်သချက်သည် 65541 ထက်နည်သသော တန်ဖိုသရဟိသော "--limit-rate" option ကိုအသုံသပဌုသည့်အခါမဟသာ libcurl ကိုအခဌေခံထာသသော application မျာသကိုအကျိုသသက်ရောက်ပဌီသ curl utility တလင်ပေါ်လာသည် - libcurl သည် ပုံမဟန်အာသဖဌင့် 16 KB အရလယ်အစာသရဟိ ကဌာသခံတစ်ခုနဟင့် curl utility တလင်ဖဌစ်သည်။ ၎င်သသည် 100 KB ဖဌစ်သည်၊ သို့သော် ၎င်သသည် “-limit-rate” ကန့်သတ်ဘောင်၏တန်ဖိုသအပေါ် မူတည်၍ အရလယ်အစာသ ပဌောင်သလဲသည်။

ပရောဂျက်ရေသသာသသူ Daniel Stenberg က အာသနည်သချက်သည် 1315 ရက်ကဌာအောင် မတလေ့ရဟိသေသကဌောင်သ ဖော်ပဌခဲ့သည်။ Curl သည် memory-safe ဘာသာစကာသဖဌင့်ရေသသာသပါက curl တလင်ယခင်ကသတ်မဟတ်ထာသသောအာသနည်သချက်မျာသ၏ 41% ကို ရဟောင်ရဟာသနိုင်ဖလယ်ရဟိကဌောင်သ၊ သို့သော် လာမည့်အနာဂတ်တလင် curl ကိုအခဌာသဘာသာစကာသသို့ပဌန်လည်ရေသရန်အစီအစဉ်မရဟိကဌောင်သ၎င်သကပဌောပါသည်။ ကုဒ်အခဌေခံ၏ လုံခဌုံရေသကို မဌဟင့်တင်ရန် အစီအမံမျာသအနေနဟင့်၊ ကုဒ်စမ်သသပ်ခဌင်သအတလက် ကိရိယာမျာသကို ချဲ့ထလင်ရန်နဟင့် memory ဖဌင့် လုံခဌုံစလာ လုပ်ဆောင်နိုင်စေရန် သေချာသည့် ပရိုဂရမ်သမင်သဘာသာစကာသမျာသဖဌင့် ရေသသာသထာသသော မဟီခိုမဟုမျာသကို ပိုမိုတက်ကဌလစလာ အသုံသပဌုရန် အဆိုပဌုထာသသည်။ Rust တလင် စမ်သသပ်လုပ်ဆောင်ခဲ့သည့် Hyper HTTP backend ကဲ့သို့သော လုံခဌုံသောဘာသာစကာသမျာသဖဌင့် ရေသသာသထာသသော ရလေသချယ်မဟုမျာသဖဌင့် curl ၏အစိတ်အပိုင်သမျာသကို တဖဌည်သဖဌည်သအစာသထိုသနိုင်ခဌေကိုလည်သ ထည့်သလင်သစဉ်သစာသနေသည်။

source: opennet.ru

မဟတ်ချက် Add