Mga kahuyangan sa lokal nga gamut sa toolkit sa pagdumala sa pakete sa Snap

Giila sa Qualys ang duha ka mga kahuyangan (CVE-2021-44731, CVE-2021-44730) sa snap-confine utility, nga gihatag sa SUID root flag ug gitawag sa snapd nga proseso sa paghimo og usa ka executable nga palibot alang sa mga aplikasyon nga gihatag sa kaugalingon nga mga pakete sa snap format. Ang mga kahuyangan nagtugot sa usa ka lokal nga dili pribilihiyo nga tiggamit sa pagpatuman sa code nga adunay mga pribilehiyo sa gamut sa sistema. Ang mga isyu nasulbad sa snapd package update karon alang sa Ubuntu 21.10, 20.04 ug 18.04.

Ang unang kahuyang (CVE-2021-44730) nagtugot sa pag-atake pinaagi sa pagmaniobra sa gahi nga link, apan nagkinahanglan sa pag-disable sa proteksyon sa hard link sa sistema (pagbutang sa sysctl fs.protected_hardlinks ngadto sa 0). Ang problema tungod sa dili husto nga pag-verify sa lokasyon sa mga executable nga mga file sa snap-update-ns ug snap-discard-ns helper nga mga programa nga gipadagan ingon gamut. Ang agianan sa kini nga mga file gikalkula sa sc_open_snapd_tool() function base sa kaugalingon nga agianan gikan sa /proc/self/exe, nga nagtugot kanimo sa paghimo usa ka lisud nga link aron ma-snap-confine sa imong direktoryo ug ibutang ang imong kaugalingon nga mga bersyon sa snap- update-ns ug snap-utility niini nga directory discard-ns. Human sa pagdagan pinaagi sa usa ka lisud nga link, ang snap-confine nga adunay mga katungod sa gamut maglunsad sa snap-update-ns ug snap-discard-ns nga mga file gikan sa kasamtangan nga direktoryo, nga gipulihan sa tig-atake.

Ang ikaduhang kahuyang kay tungod sa kondisyon sa lumba ug mahimong mapahimuslan sa default nga configuration sa Ubuntu Desktop. Aron malampuson nga magtrabaho ang pagpahimulos sa Ubuntu Server, kinahanglan nimo nga pilion ang usa sa mga pakete gikan sa seksyon nga "Gipili nga Mga Snaps sa Server" kung nag-install. Ang kahimtang sa lumba makita sa setup_private_mount() function nga gitawag sa panahon sa pag-andam sa mount point namespace alang sa snap package. Kini nga function nagmugna og temporaryo nga direktoryo nga "/tmp/snap.$SNAP_NAME/tmp" o naggamit sa usa nga anaa na sa pagbugkos sa mga direktoryo alang sa usa ka snap package ngadto niini.

Tungod kay ang ngalan sa temporaryo nga direktoryo matag-an, ang usa ka tig-atake mahimong mopuli sa mga sulod niini sa usa ka simbolo nga link human masusi ang tag-iya, apan sa dili pa motawag sa mount system call. Pananglitan, makahimo ka og symlink "/tmp/snap.lxd/tmp" sa /tmp/snap.lxd nga direktoryo nga nagpunting sa usa ka arbitraryong direktoryo, ug ang tawag sa mount() mosunod sa symlink ug i-mount ang direktoryo sa snap namespace. Sa samang paagi, mahimo nimong i-mount ang imong mga sulod sa /var/lib ug, pinaagi sa pag-ilis sa /var/lib/snapd/mount/snap.snap-store.user-fstab, i-organisar ang pag-mount sa imong /etc directory sa namespace sa ang snap package aron maorganisar ang pagkarga sa imong librarya gikan sa mga katungod sa gamut pinaagi sa pag-ilis sa /etc/ld.so.preload.

Namatikdan nga ang paghimo sa usa ka pagpahimulos nahimo nga usa ka dili hinungdanon nga buluhaton, tungod kay ang snap-confine utility gisulat sa Go gamit ang luwas nga mga pamaagi sa pagprograma, adunay proteksyon base sa mga profile sa AppArmor, nagsala sa mga tawag sa sistema base sa mekanismo sa seccomp, ug gigamit. ang mount namespace alang sa pag-inusara. Bisan pa, ang mga tigdukiduki nakahimo sa pag-andam sa usa ka nagtrabaho nga pagpahimulos aron makuha ang mga katungod sa gamut sa sistema. Ang exploit code ipatik sa pipila ka semana human ma-install sa mga tiggamit ang gihatag nga mga update.

Source: opennet.ru

Idugang sa usa ka comment