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

Qualys SUID түбір жалаушасымен қамтамасыз етілген және дербес пакеттерде жеткізілетін қолданбалар үшін орындалатын ортаны жасау үшін snapd процесі арқылы шақырылған snap-confine утилитасында екі осалдықты (CVE-2021-44731, CVE-2021-44730) анықтады. snap форматында. Осалдықтар жергілікті артықшылығы жоқ пайдаланушыға жүйеде түбірлік артықшылықтармен кодты орындауға мүмкіндік береді. Мәселелер Ubuntu 21.10, 20.04 және 18.04 үшін Snapd бумасының бүгінгі жаңартуында шешілген.

Бірінші осалдық (CVE-2021-44730) қатты сілтеме манипуляциясы арқылы шабуылға мүмкіндік береді, бірақ жүйенің қатты сілтеме қорғанысын өшіруді талап етеді (sysctl fs.protected_hardlinks мәнін 0-ге орнату). Мәселе түбір ретінде іске қосылған snap-update-ns және snap-discard-ns көмекші бағдарламаларының орындалатын файлдарының орнын дұрыс тексеруден туындады. Бұл файлдарға жол sc_open_snapd_tool() функциясында /proc/self/exe ішінен өз жолына негізделген есептелді, ол каталогта snap-confine үшін қатты сілтеме жасауға және snap-дің жеке нұсқаларын орналастыруға мүмкіндік береді. Осы каталогтағы update-ns және snap- утилиталары discard-ns. Қатты сілтеме арқылы іске қосылғаннан кейін, түбірлік құқықтары бар snap-confine шабуылдаушы ауыстырған ағымдағы каталогтан snap-update-ns және snap-discard-ns файлдарын іске қосады.

Екінші осалдық жарыс жағдайынан туындайды және оны әдепкі Ubuntu Desktop конфигурациясында пайдалануға болады. Эксплойт Ubuntu серверінде сәтті жұмыс істеуі үшін орнату кезінде «Таңдаулы сервердің суреттері» бөліміндегі бумалардың бірін таңдау керек. Жарыс шарты snap бумасы үшін бекіту нүктесінің аттар кеңістігін дайындау кезінде шақырылған setup_private_mount() функциясында анық көрінеді. Бұл функция “/tmp/snap.$SNAP_NAME/tmp” уақытша каталогын жасайды немесе оған snap бумасының каталогтарын байланыстыру үшін бар каталогты пайдаланады.

Уақытша каталогтың атауын болжауға болатындықтан, шабуылдаушы оның мазмұнын иесін тексергеннен кейін, бірақ орнату жүйесін шақыруға дейін символдық сілтемемен ауыстыра алады. Мысалы, ерікті каталогқа нұсқайтын /tmp/snap.lxd/tmp каталогында "/tmp/snap.lxd/tmp" символдық сілтемесін жасауға болады және mount() шақыру символдық сілтемеден кейін каталогты орнатуға болады. аттар кеңістігі. Сол сияқты, мазмұнды /var/lib ішіне орнатуға болады және /var/lib/snapd/mount/snap.snap-store.user-fstab орнына ауыстыру арқылы /etc каталогын аттар кеңістігінде орнатуды ұйымдастыра аласыз. /etc/ld.so.preload орнын ауыстыру арқылы түбірлік құқықтары бар кітапхананы жүктеуді ұйымдастыру үшін snap бумасы.

Эксплойт жасау тривиальды емес тапсырма болып шықты, өйткені snap-confine утилитасы қауіпсіз бағдарламалау әдістерін қолдана отырып Go бағдарламасында жазылған, AppArmor профильдері негізінде қорғанысы бар, seccomp механизмі негізінде жүйелік қоңырауларды сүзеді және пайдаланады. оқшаулауға арналған аттар кеңістігі. Дегенмен, зерттеушілер жүйеде түбірлік құқықтарды алу үшін жұмыс істейтін эксплойтты дайындай алды. Пайдалану коды пайдаланушылар ұсынылған жаңартуларды орнатқаннан кейін бірнеше аптадан кейін жарияланады.

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

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