Snap пакетін басқару құралдар жинағындағы түбірлік осалдық

Qualys биылғы жылы үшінші қауіпті осалдықты (CVE-2022-3328) анықтады, ол SUID түбір жалауымен бірге жеткізілетін және дербес пакеттерде таратылатын қолданбалар үшін орындалатын ортаны жасау үшін snapd процесі арқылы шақырылады. snap форматында. Осалдық жергілікті артықшылығы жоқ пайдаланушыға әдепкі Ubuntu конфигурациясында түбір ретінде кодтың орындалуына қол жеткізуге мүмкіндік береді. Мәселе snapd 2.57.6 шығарылымында түзетілді. Ubuntu жүйесінің барлық қолдау көрсетілетін филиалдары үшін пакет жаңартулары шығарылды.

Бір қызығы, қарастырылып отырған осалдық ақпан айындағы ұқсас осалдықты snap-confine режимінде түзету барысында енгізілген. Зерттеушілер Ubuntu Server 22.04 жүйесіне түбірлік қатынасты қамтамасыз ететін жұмыс эксплойтын дайындай алды, ол snap-confine осалдығына қоса, көп жолды процестегі екі осалдықты да қамтиды (CVE-2022-41974, CVE-2022-41973) , артықшылықты пәрмендерді беру кезінде өкілеттікті тексеруді айналып өтумен және символдық сілтемелермен қауіпті жұмыспен байланысты.

Snap-confine жүйесіндегі осалдық /tmp/snap.$SNAP_NAME каталогының иесін тексергеннен кейін, бірақ орнату жүйесін шақырудан бұрын символдық сілтемемен ауыстырудан қорғау үшін қосылған must_mkdir_and_open_with_perms() функциясындағы жарыс шартынан туындайды. snap пішіміндегі бума үшін каталогтарды байланыстыруға шақырыңыз. Қосылған қорғаныс /tmp/snap.$SNAP_NAME каталогының атын /tmp ішіндегі басқа каталогқа, егер ол бар болса және түбірге тиесілі болмаса, кездейсоқ атаумен өзгерту болды.

/tmp/snap.$SNAP_NAME каталогының атын өзгерту операциясын пайдалану кезінде зерттеушілер snap-confine сонымен қатар snap бумасының мазмұнының түбірі үшін /tmp/snap.rootfs_XXXXXX каталогын жасайтынын пайдаланды. Атаудың "XXXXXX" бөлігін mkdtemp() арқылы кездейсоқ таңдайды, бірақ "rootfs_XXXXXX" деп аталатын буманы sc_instance_name_validate функциясында тексеруге болады (яғни, $SNAP_NAME "rootfs_XXXXXX" күйіне орнатылады, содан кейін атын өзгерту операциясы болады. /tmp/snap.rootfs_XXXXXX каталогын түбірлік үзіндімен қайта жазуға әкеледі).

/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 түбірлік каталогын толық бақылауға алды.

Соңғы қадам /tmp/snap.rootfs_XXXXXX/tmp символдық сілтемесін жасау болды, оны sc_bootstrap_mount_namespace() функциясы mount() шақыруынан бері /tmp жазылатын нақты каталогын файлдық жүйедегі кез келген каталогқа байланыстыру үшін пайдаланды. орнату алдында символдық сілтемелерді орындайды. Мұндай орнату AppArmor шектеулерімен бұғатталған, бірақ бұл блокты айналып өту үшін эксплуатация multipathd жүйесінде екі көмекші осалдықты пайдаланды.

Ақпарат көзі: opennet.ru

пікір қалдыру