Juure- haavatavus Snap pakihaldustööriistades

Qualys teatas kolmandast tÔsise haavatavusest (CVE-2022-3328) snap-confine utiliidis, mis on pakitud SUID root lipuga ja mida snapd protsess kutsub esile, et luua tÀidesaatvat keskkonda iseseisvates snap-formaadis rakendustes. Haavatavus vÔimaldab kohalikul mitteprivilegeeritud kasutajal saada root-Ôigusi Ubuntu vaikekonfiguratsioonis. Probleem on lahendatud snapd 2.57.6 versioonis. Paketiuuendused on vÀlja antud kÔigile toetatud Ubuntu harudele.

Huvitav on, et arutletav haavatavus lisati sarnase veebruarikuu haavatavuse parandamise kĂ€igus snap-confine-s. Uurijatel Ă”nnestus luua töötav eksploit, mis annab root-juurdepÀÀsu Ubuntu Server 22.04, kus lisaks snap-confine haavatavusele on seotud kaks haavatavust multipathd protsessis (CVE-2022-41974, CVE-2022-41973), mis on seotud privileegide kontrollimise ĂŒmberlĂŒkkamise ja sĂŒmboolsete linkidega töötamisega, mis ei ole turvaline.

Snap-confine haavatavus tuleneb vĂ”istlusolukorrast funktsioonis must_mkdir_and_open_with_perms(), mis lisati selleks, et kaitsta kausta /tmp/snap.$SNAP_NAME sĂŒmboolse lingi asendamise eest pĂ€rast omaniku kontrollimist, kuid enne sĂŒsteemi kĂ”ne kutsumist mount, et bind-mountida paketi snap-formaadis katalooge sinna. Lisatud kaitse koosnes /tmp/snap.$SNAP_NAME kataloogi ĂŒmbernimetamisest teiseks kataloogiks /tmp-s, mille nimi on juhuslik, kui see eksisteerib ja ei kuulu root kasutajale.

Ekspordimise ajal, kui katalooge /tmp/snap.$SNAP_NAME ĂŒmber nimetatakse, kasutasid uurijad seda, et snap-confine loob ka katalooge /tmp/snap.rootfs_XXXXXX, mis on snap paketis sisalduva pĂ”hisisu jaoks. Osa «XXXXXX» nimes valitakse juhuslikult mkdtemp() abil, kuid paketi nimega «rootfs_XXXXXX» vĂ”ib sc_instance_name_validate funktsiooni kontrolli lĂ€bi pÀÀseda (st idee on selles, et nimi $SNAP_NAME omandab vÀÀrtuse «rootfs_XXXXXX» ja seega toob ĂŒmbernimetamise teostamine kaasa katalooge /tmp/snap.rootfs_XXXXXX ĂŒmberkirjutamise snap juuriks).

Selleks, et saavutada samaaegne kasutamine /tmp/snap.rootfs_XXXXXX ja ĂŒmbernimetamine /tmp/snap.$SNAP_NAME, kĂ€ivitati kaks eksemplari snap-confine'ist. Niipea kui esimene eksemplar lĂ”i /tmp/snap.rootfs_XXXXXX, lukustus protsess ja kĂ€ivitati teine eksemplar nimega rootfs_XXXXXX, mis tĂ”i kaasa selle, et teise eksemplari ajutine kataloog /tmp/snap.$SNAP_NAME muutus esimese /tmp/snap.rootfs_XXXXXX juurkataloogiks. Kohe pĂ€rast ĂŒmbernimetamist lĂ”petas teine eksemplar töö ning /tmp/snap.rootfs_XXXXXX asendati olukorra vĂ”istluse manipuleerimisega, nagu veebruarikuises haavatavuses. PĂ€rast asendamist vabastati esimese eksemplari töö ning rĂŒndajad said tĂ€ieliku kontrolli snap'i juurkatalooge ĂŒle.

Viimasel etapil loodi sĂŒmboolne link /tmp/snap.rootfs_XXXXXX/tmp, mida funktsioon sc_bootstrap_mount_namespace() kasutas, et bind-monteerida kirjutamiseks saadaval tĂ”eline kataloog /tmp igasse FS katalooge, kuna mount() funktsioon jĂ€rgib sĂŒmboolseid linke enne montaaĆŸi. Selline monteerimine blokeeritakse AppArmori piirangutega, kuid selle blokeeringu mööda hiilimiseks kasutati eksploitis kahte abiviga multipathd-s.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster