Snap Package Management Toolkit တွင် Root Vulnerability

Qualys သည် ယခုနှစ်တွင် snap-confine utility တွင် တတိယမြောက် အရေးကြီးသော အားနည်းချက် (CVE-2022-3328) ကို ဖော်ထုတ်ခဲ့ပြီး၊ ၎င်းတွင် SUID root flag နှင့်အတူ ပါရှိပြီး snapd process မှ ခေါ်ယူကာ self-contained snap packages များတွင် ဖြန့်ဝေထားသော application များအတွက် executable environment တစ်ခု ဖန်တီးပေးပါသည်။ ဤအားနည်းချက်သည် local, privileged user တစ်ဦးကို configuration အတွင်းရှိ root privileges များဖြင့် code ကို execute လုပ်ခွင့်ပြုသည်။ Ubuntu မူရင်းအားဖြင့်။ ပြဿနာကို snapd 2.57.6 တွင် ပြင်ဆင်ပြီးပါပြီ။ ပံ့ပိုးပေးထားသော branch အားလုံးအတွက် package update များကို ထုတ်ပြန်လိုက်ပါပြီ။ Ubuntu.

စိတ်ဝင်စားစရာကောင်းတာက ဒီအားနည်းချက်ဟာ ဖေဖော်ဝါရီလက အလားတူအားနည်းချက်တစ်ခုကို snap-confine မှာ ပြင်ဆင်နေစဉ်မှာ ပေါ်လာခဲ့တာပါ။ သုတေသီတွေဟာ root access ပေးစွမ်းနိုင်တဲ့ exploit တစ်ခုကို ပြင်ဆင်နိုင်ခဲ့ပါတယ်။ Ubuntu Server 22.04 တွင် snap-confine အားနည်းချက်အပြင် multipathd လုပ်ငန်းစဉ်တွင် အားနည်းချက်နှစ်ခု (CVE-2022-41974၊ CVE-2022-41973) ပါဝင်ပြီး privileged command များကို ဖြတ်သန်းသည့်အခါ permission check များကို ကျော်ဖြတ်ခြင်းနှင့် symbolic link များကို မလုံခြုံစွာ ကိုင်တွယ်ခြင်းတို့ ပါဝင်ပါသည်။

Snap-confine တွင် အားနည်းချက်သည် /tmp/snap.$SNAP_NAME လမ်းညွှန်ကို ပိုင်ရှင်ကိုစစ်ဆေးပြီးနောက် သင်္ကေတလင့်ခ်ဖြင့် အစားထိုးခြင်းမှ ကာကွယ်ရန်အတွက် must_mkdir_and_open_with_perms() လုပ်ဆောင်ချက်ရှိ ပြိုင်ဆိုင်မှုအခြေအနေကြောင့် ဖြစ်ပေါ်လာသည်၊ သို့သော် mount system ကို မခေါ်ဆိုမီ၊ snap format ဖြင့် package တစ်ခုအတွက် bind-mount directory များကို ၎င်းတွင် ခေါ်ဆိုပါ။ ထပ်လောင်းကာကွယ်မှုသည် /tmp/snap.$SNAP_NAME လမ်းညွှန်ကို /tmp တွင်ရှိပြီး၊ root မပိုင်ဆိုင်ပါက ကျပန်းအမည်ဖြင့် အခြားလမ်းညွှန်တစ်ခုသို့ အမည်ပြောင်းရန်ဖြစ်သည်။

/tmp/snap.$SNAP_NAME လမ်းညွှန်အမည်ပြောင်းခြင်း လုပ်ဆောင်ချက်ကို အသုံးချသည့်အခါ၊ သုတေသီများသည် snap-confine သည် snap package ၏အကြောင်းအရာများ၏ root အတွက် /tmp/snap.rootfs_XXXXXX လမ်းညွှန်တစ်ခုကို ဖန်တီးပေးသည်ဟူသောအချက်ကို သုတေသီများက အခွင့်ကောင်းယူခဲ့သည်။ အမည်၏ "XXXXXX" အပိုင်းကို mkdtemp() ဖြင့် ကျပန်းရွေးချယ်ထားသော်လည်း "rootfs_XXXXXX" အမည်ရှိ ပက်ကေ့ဂျ်တစ်ခုကို sc_instance_name_validate လုပ်ဆောင်ချက်တွင် အတည်ပြုနိုင်သည် (ဆိုလိုသည်မှာ အယူအဆမှာ $SNAP_NAME ကို "rootfs_XXXXXX" ဟု သတ်မှတ်ပြီးနောက် အမည်ပြောင်းခြင်း လုပ်ဆောင်ချက် root snap ဖြင့် /tmp/snap.rootfs_XXXXXX directory ကို overwrite လုပ်ရန် ရလဒ် ထွက်ပေါ်လာလိမ့်မည်။

/tmp/snap.rootfs_XXXXXX ကို တစ်ပြိုင်နက် အသုံးပြုခြင်းနှင့် /tmp/snap.$SNAP_NAME အမည်ပြောင်းခြင်း အောင်မြင်စေရန်အတွက်၊ snap-confine ဖြစ်ရပ်နှစ်ခုကို စတင်လိုက်ပါသည်။ ပထမဥပမာကို /tmp/snap.rootfs_XXXXXX ဖန်တီးပြီးသည်နှင့်၊ လုပ်ငန်းစဉ်သည် ပိတ်ဆို့သွားမည်ဖြစ်ပြီး ဒုတိယဥပမာသည် ပက်ကေ့ဂျ်အမည် rootfs_XXXXXX ဖြင့် စတင်မည်ဖြစ်ပြီး၊ ဒုတိယဥပမာ၏ ယာယီလမ်းညွှန် /tmp/snap.$SNAP_NAME သည် အမြစ်လမ်းညွှန် /tmp/snap ဖြစ်လာစေသည် .rootfs_XXXXXX ၏ ပထမ။ အမည်ပြောင်းခြင်းပြီးသည်နှင့် ချက်ခြင်းတွင်၊ ဒုတိယဥပမာ ပျက်သွားကာ ဖေဖော်ဝါရီ အားနည်းချက်ကို အသုံးချသည့်အနေဖြင့် /tmp/snap.rootfs_XXXXXX အား ပြိုင်ပွဲအခြေအနေ ခြယ်လှယ်မှုဖြင့် အစားထိုးခဲ့သည်။ အစားထိုးပြီးနောက်၊ လုပ်ဆောင်ချက်လော့ခ်ကို ပထမအကြိမ်မှ ဖယ်ရှားခဲ့ပြီး တိုက်ခိုက်သူများသည် snap root directory ကို အပြည့်အဝ ထိန်းချုပ်နိုင်ခဲ့သည်။

နောက်ဆုံးအဆင့်မှာ mount() ဟုခေါ်ဆိုသောကြောင့်၊ mount() ခေါ်ဆိုမှုကြောင့် ဖိုင်စနစ်ရှိ မည်သည့်လမ်းညွှန်ကိုမဆို ချိတ်ဆက်ရန် နောက်ဆုံးအဆင့်မှာ symlink /tmp/snap.rootfs_XXXXXX/tmp ကို ဖန်တီးရန် sc_bootstrap_mount_namespace() လုပ်ဆောင်ချက်မှ အသုံးပြုခဲ့သည်။ မတပ်ဆင်မီ symlinks များကို လိုက်နာပါ။ ထိုသို့သော တပ်ဆင်ခြင်းကို AppArmor ကန့်သတ်ချက်များဖြင့် ပိတ်ဆို့ထားသော်လည်း ဤပိတ်ဆို့ခြင်းကို ကျော်လွှားရန်အတွက် exploit သည် multipathd တွင် အရန်အားနည်းချက်နှစ်ခုကို အသုံးပြုခဲ့သည်။

source: opennet.ru

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