Ailewu gbongbo ninu ohun elo irinṣẹ iṣakoso package Snap

Qualys ti ṣe idanimọ ailagbara kẹta ti o lewu ni ọdun yii (CVE-2022-3328) ni ohun elo snap-confine, eyiti o wa pẹlu asia root SUID ati pe o pe nipasẹ ilana snapd lati ṣẹda agbegbe ipaniyan fun awọn ohun elo ti o pin ni awọn idii ti ara ẹni. ni imolara kika. Ailagbara naa ngbanilaaye olumulo ti ko ni anfani ti agbegbe lati ṣaṣeyọri ipaniyan koodu bi gbongbo ninu iṣeto Ubuntu aiyipada. Ọrọ naa wa titi ni idasilẹ snapd 2.57.6. Awọn imudojuiwọn idii ti tu silẹ fun gbogbo awọn ẹka atilẹyin ti Ubuntu.

O yanilenu, ailagbara ti o wa ninu ibeere ni a ṣe afihan lakoko ilana ti atunṣe ailagbara Kínní kan ti o jọra ni ihamọ-ara. Awọn oniwadi ni anfani lati mura ilokulo ti n ṣiṣẹ ti o pese iraye si root si Ubuntu Server 22.04, eyiti, ni afikun si ailagbara ni ipanu-ipamọ, tun pẹlu awọn ailagbara meji ninu ilana multipathd (CVE-2022-41974, CVE-2022-41973) , ti o ni nkan ṣe pẹlu lilọ kiri aṣẹ ayẹwo nigbati gbigbe awọn aṣẹ ti o ni anfani ati iṣẹ ailewu pẹlu awọn ọna asopọ aami.

Ailagbara ti o wa ninu imolara-confine jẹ idi nipasẹ ipo ije kan ninu iṣẹ must_mkdir_and_open_with_perms (), ti a ṣafikun lati daabobo lodi si iyipada ti / tmp/snap. $SNAP_NAME itọsọna pẹlu ọna asopọ aami kan lẹhin ti ṣayẹwo oniwun naa, ṣugbọn ṣaaju pipe eto oke. ipe lati di-òke ilana sinu o fun a package ni imolara kika. Idaabobo ti a fikun ni lati tunrukọ /tmp/snap. $SNAP_NAME itọsọna si iwe-ipamọ miiran ni /tmp pẹlu orukọ laileto ti o ba wa ati pe ko jẹ ohun ini nipasẹ root.

Nigbati o ba n lo /tmp/snap.$SNAP_NAME itọsọna lorukọ iṣẹ, awọn oniwadi lo anfani ti otitọ pe snap-confine tun ṣẹda itọsọna /tmp/snap.rootfs_XXXXXX kan fun gbongbo awọn akoonu ti package snap. Apakan "XXXXXX" ti orukọ naa ni a yan laileto nipasẹ mkdtemp(), ṣugbọn package kan ti a npè ni "rootfs_XXXXXX" le jẹ ifọwọsi ni iṣẹ sc_instance_name_validate (ie ero naa ni pe $SNAP_NAME yoo ṣeto si "rootfs_XXXXXX" ati lẹhinna tunrukọ iṣẹ ṣiṣe). yoo ja si lati tun kọ /tmp/snap.rootfs_XXXXXX ilana pẹlu imolara root).

Lati le ṣaṣeyọri lilo nigbakanna ti /tmp/snap.rootfs_XXXXXX ati fun lorukọmii /tmp/snap.$SNAP_NAME, awọn iṣẹlẹ meji ti snap-confine ni a ṣe ifilọlẹ. Ni kete ti apẹẹrẹ akọkọ ti ṣẹda /tmp/snap.rootfs_XXXXXX, ilana naa yoo dina ati apẹẹrẹ keji yoo bẹrẹ pẹlu orukọ package rootfs_XXXXXX, nfa ilana igba diẹ ti apẹẹrẹ keji /tmp/snap.$SNAP_NAME lati di ilana root /tmp/snap. .rootfs_XXXXXX ti akọkọ. Lẹsẹkẹsẹ lẹhin ti awọn atunṣe ti pari, apẹẹrẹ keji ṣubu, ati /tmp/snap.rootfs_XXXXXX ti rọpo pẹlu ifọwọyi ipo ipo-ije, bi nigbati o nlo ailagbara Kínní. Lẹhin iyipada, titiipa ipaniyan ti yọkuro lati apẹẹrẹ akọkọ ati awọn ikọlu gba iṣakoso ni kikun lori ilana ilana gbongbo imolara.

Igbesẹ ti o kẹhin ni lati ṣẹda symlink /tmp/snap.rootfs_XXXXXX/tmp, eyiti o jẹ lilo nipasẹ iṣẹ sc_bootstrap_mount_namespace () lati sopọ mọ iwe-ilana gidi ti a kọ / tmp si eyikeyi itọsọna ninu eto faili, niwon ipe oke () wọnyi symlinks ṣaaju ki o to iṣagbesori. Iru iṣagbesori bẹ jẹ idinamọ nipasẹ awọn ihamọ AppArmor, ṣugbọn lati fori bulọọki yii, ilokulo naa lo awọn ailagbara oluranlọwọ meji ni multipathd.

orisun: opennet.ru

Fi ọrọìwòye kun