Dalawang kahinaan ang nakita sa Snap at pinahintulutang magpatakbo ng code bilang root

Inihayag ni Qualys ang balitang aking kinilala dalawang kahinaan (CVE-2021-44731 at CVE-2021-44730) sa snap-confine utility, na ipinadala kasama ang root SUID flag at tinawag ng proseso ng snapd upang bumuo ng isang executable na kapaligiran para sa mga application na ibinahagi sa mga snap package.

Sa blog post ay nabanggit na pinahihintulutan ng mga kahinaan ang isang walang pribilehiyong lokal na user na makamit ang pagpapatupad ng code bilang ugat sa sistema.

Ang unang kahinaan ay nagbibigay-daan sa isang pisikal na pag-atake sa pagmamanipula ng link, ngunit nangangailangan ng hindi pagpapagana ng proteksyon ng mga hardlink ng system (sa pamamagitan ng pagtatakda ng sysctl fs.protected_hardlinks sa 0).

Ang problema ito ay dahil sa isang hindi tamang pag-verify ng lokasyon ng mga executable ng snap-update-ns at snap-discard-ns utility na tumatakbo bilang ugat. Ang landas sa mga file na ito ay kinakalkula sa sc_open_snapd_tool() function na batay sa sarili nitong landas mula sa /proc/self/exe, na nagpapahintulot sa iyo na lumikha ng isang hard link upang makulong sa iyong direktoryo at ilagay ang iyong mga pagpipilian sa snap-update-ns at snap -discard-ns sa direktoryong ito. Kapag inilunsad mula sa isang hard link, i-snap-confine bilang root ang mga file na snap-update-ns at snap-discard-ns na pinalitan ng attacker mula sa kasalukuyang direktoryo.

Ang matagumpay na pagsasamantala sa kahinaang ito ay nagbibigay-daan sa sinumang hindi may pribilehiyong gumagamit na makakuha ng mga pribilehiyo sa ugat sa mahinang host. Ang mga mananaliksik ng seguridad ng Qualys ay nakapag-iisa na nakapag-verify ng kahinaan, nakabuo ng pagsasamantala, at nakakuha ng ganap na mga pribilehiyo sa ugat sa mga default na pag-install ng Ubuntu.

Sa sandaling nakumpirma ng koponan ng pananaliksik ng Qualys ang kahinaan, nakipag-ugnayan kami sa responsableng pagsisiwalat ng kahinaan at nakipag-ugnayan sa mga pamamahagi ng vendor at open source upang ipahayag ang bagong natuklasang kahinaan na ito.

Ang pangalawang kahinaan ay sanhi ng kondisyon ng lahi at maaaring mapagsamantalahan sa default na configuration ng desktop ng Ubuntu. Para matagumpay na gumana ang pagsasamantala sa Ubuntu Server, dapat kang pumili ng isa sa mga pakete mula sa seksyong "Mga Itinatampok na Server Snaps" habang nag-i-install.

kondisyon ng lahi ipinapakita sa setup_private_mount() function tinatawag sa panahon ng paghahanda ng mount point namespace para sa instant package. Lumilikha ang function na ito ng pansamantalang direktoryo na "/tmp/snap.$SNAP_NAME/tmp" o gumagamit ng umiiral nang direktoryo upang i-link at i-mount ang mga direktoryo para sa snap package dito.

Dahil predictable ang pangalan ng pansamantalang direktoryo, maaaring baguhin ng isang attacker ang mga nilalaman nito sa isang simbolikong link pagkatapos ma-verify ang may-ari, ngunit bago tumawag sa mount system. Halimbawa, maaari kang lumikha ng isang symlink "/tmp/snap.lxd/tmp" sa /tmp/snap.lxd na direktoryo na tumuturo sa isang arbitrary na direktoryo at ang mount() na tawag ay susundan ang symlink at i-mount ang direktoryo sa espasyo ng mga pangalan.

Katulad nito, maaari mong i-mount ang mga nilalaman nito sa /var/lib at, i-overriding ang /var/lib/snapd/mount/snap.snap-store.user-fstab, ayusin ang pag-mount ng iyong /etc na direktoryo sa snap namespace ng package upang i-load ang iyong library mula sa root access sa pamamagitan ng pagpapalit ng /etc/ld.so.preload.

Naobserbahan na ang paglikha ng isang pagsasamantala ay naging isang hindi maliit na gawain, dahil ang snap-confine utility ay nakasulat gamit ang secure na mga diskarte sa programming (ang snapd ay nakasulat sa Go, ngunit ang C ay ginagamit para sa snap-confine), may proteksyon batay sa mga profile ng AppArmor, sinasala ang mga tawag sa system batay sa mekanismo ng seccomp at gumagamit ng mount namespace para sa paghihiwalay.

Gayunpaman, ang mga mananaliksik ay nakapaghanda ng isang functional na pagsasamantala para makakuha ng root access sa system. Ilalabas ang exploit code ilang linggo pagkatapos i-install ng mga user ang mga ibinigay na update.

Sa wakas, ito ay nagkakahalaga ng pagbanggit naNaayos ang mga problema sa pag-update ng snapd package para sa mga bersyon ng Ubuntu 21.10, 20.04 at 18.04.

Bilang karagdagan sa iba pang mga distribusyon na gumagamit ng Snap, ang Snapd 2.54.3 ay inilabas, na, bilang karagdagan sa mga problema sa itaas, ay nag-aayos ng isa pang kahinaan (CVE-2021-4120), na nagbibigay-daan, kapag nag-i-install ng espesyal na idinisenyong mga pakete ng plugin, i-override ang mga arbitrary na panuntunan ng AppArmor at i-bypass ang mga paghihigpit sa pag-access na itinakda para sa package.

Kung ikaw interesadong malaman ang higit pa tungkol dito, maaari mong suriin ang mga detalye Sa sumusunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.