Athari katika vikundi v1 inayoruhusu kutoroka kutoka kwa chombo kilichotengwa

Maelezo ya athari (CVE-2022-0492) katika utaratibu wa kubana rasilimali ya Linux kernel v1 yamefichuliwa. Athari hii inaweza kutumika kuepuka vyombo vilivyotengwa. Suala hili linajidhihirisha kuanzia na Linux kernel 2.6.24 na lilirekebishwa katika matoleo ya kernel 5.16.12, 5.15.26, 5.10.97, 5.4.177, 4.19.229, 4.14.266, na 4.9.301. Unaweza kufuatilia matoleo ya masasisho ya kifurushi kwa usambazaji maalum kwenye kurasa zifuatazo: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, na Arch Linux.

Athari hii inasababishwa na hitilafu ya kimantiki katika kidhibiti cha faili_akala, ambayo ilizuia ukaguzi ufaao wakati wa kuendesha kidhibiti kwa upendeleo kamili. Faili ya wakala_kutolewa hutumika kufafanua programu inayotekelezwa na kernel wakati mchakato katika kikundi unapoisha. Mpango huu unaendeshwa na haki za mizizi na uwezo wote katika nafasi ya jina la mizizi. Ufikiaji wa usanidi wa wakala_kutolewa ulikusudiwa kuzuiwa kwa msimamizi, lakini kwa kweli, ukaguzi ulikuwa na kikomo cha kutoa ufikiaji kwa mtumiaji wa mizizi, ambayo haikuzuia usanidi kubadilishwa kutoka ndani ya chombo au na mtumiaji wa mizizi bila upendeleo wa msimamizi (CAP_SYS_ADMIN).

Hapo awali, kipengele hiki hakingezingatiwa kuwa hatari, lakini hali ilibadilika na ujio wa nafasi za majina ya watumiaji, ambayo inaruhusu kuundwa kwa watumiaji wa mizizi tofauti katika vyombo ambavyo haviingiliani na mtumiaji wa mizizi ya mazingira kuu. Ipasavyo, ili kutekeleza shambulizi, kontena iliyo na mzizi wake wa mtumiaji katika nafasi tofauti ya jina la mtumiaji inahitaji tu kuambatisha kidhibiti_cha wakala wake. Baada ya mchakato kukomesha, kidhibiti kitatekeleza kwa upendeleo kamili wa mazingira kuu.

Kwa chaguo-msingi, cgroupfs huwekwa kwenye kontena katika hali ya kusoma tu, lakini hakuna tatizo la kuweka tena uwongo-f huu katika hali ya kuandika ikiwa una haki za CAP_SYS_ADMIN au kwa kuunda kontena iliyopachikwa na nafasi tofauti ya jina la mtumiaji kwa kutumia simu ya mfumo ya kutoshiriki, ambayo haki za CAP_SYS_ADMIN zinapatikana kwa chombo kilichoundwa.

 Athari katika vikundi v1 inayoruhusu kutoroka kutoka kwa chombo kilichotengwa

Shambulio linaweza kufanywa kwa haki za mizizi katika chombo kilichojitenga au wakati wa kuendesha kontena bila bendera ya no_new_privs, ambayo inazuia upendeleo wa ziada. Mfumo lazima uwe na nafasi za majina ya watumiaji (umewezeshwa kwa chaguo-msingi kwenye Ubuntu na Fedora, lakini haujawashwa kwenye Debian na RHEL) na ufikiaji wa kikundi cha mizizi v1 (kwa mfano, Docker huendesha vyombo katika kikundi cha RDMA cha mizizi). Shambulio hilo pia linawezekana kwa haki za CAP_SYS_ADMIN, katika hali ambayo nafasi za majina ya watumiaji na ufikiaji wa safu ya mizizi ya v1 haihitajiki.

Kando na kutoroka kutoka kwa kontena lililojitenga, athari hii pia inaruhusu michakato iliyozinduliwa na mtumiaji wa mizizi bila uwezo, au na mtumiaji yeyote aliye na mapendeleo ya CAP_DAC_OVERRIDE (shambulio linahitaji ufikiaji wa faili ya /sys/fs/cgroup/*/release_agent, ambayo inamilikiwa na mzizi), kupata ufikiaji wa uwezo wote wa mfumo.

Imebainika kuwa athari haiwezi kutumiwa wakati wa kutumia njia za ulinzi za Seccomp, AppArmor, au SELinux kwa utengaji wa kontena zaidi, kwa kuwa Seccomp huzuia ufikiaji wa simu ya mfumo ya unshare(), na AppArmor na SELinux haziruhusu kupachika cgroupfs katika hali ya kuandika.

Chanzo: opennet.ru