Athari za ndani katika zana za udhibiti wa kifurushi cha Snap

Qualys ametambua udhaifu mbili (CVE-2021-44731, CVE-2021-44730) katika matumizi ya snap-confine, inayotolewa na bendera ya SUID na kuitwa na mchakato wa snapd ili kuunda mazingira ya kutekelezwa kwa programu zinazowasilishwa katika vifurushi vinavyojitosheleza. katika muundo wa snap. Athari za kiusalama huruhusu mtumiaji wa ndani ambaye hana hakimiliki kutekeleza msimbo wenye upendeleo wa mizizi kwenye mfumo. Masuala yanatatuliwa katika sasisho la kifurushi cha snapd cha Ubuntu 21.10, 20.04 na 18.04.

Athari ya kwanza (CVE-2021-44730) inaruhusu shambulio kupitia uchezaji wa kiungo kigumu, lakini inahitaji kulemaza ulinzi wa kiungo kigumu (kuweka sysctl fs.protected_hardlinks kuwa 0). Tatizo linasababishwa na uthibitishaji usio sahihi wa eneo la faili zinazoweza kutekelezwa za programu za usaidizi za snap-update-ns na snap-discard-ns zinazoendeshwa kama mzizi. Njia ya faili hizi ilihesabiwa katika kazi ya sc_open_snapd_tool() kulingana na njia yake mwenyewe kutoka /proc/self/exe, ambayo hukuruhusu kuunda kiunga kigumu cha kufunga-funga kwenye saraka yako na kuweka matoleo yako mwenyewe ya snap- update-ns na snap- utilities katika saraka hii tupa-ns. Baada ya kuendesha kupitia kiungo kigumu, snap-confine na haki za mizizi itazindua snap-update-ns na snap-discard-ns faili kutoka kwenye saraka ya sasa, na kubadilishwa na mshambuliaji.

Athari ya pili inasababishwa na hali ya mbio na inaweza kutumika katika usanidi chaguo-msingi wa Ubuntu Desktop. Ili unyonyaji ufanye kazi kwa mafanikio katika Seva ya Ubuntu, lazima uchague moja ya vifurushi kutoka sehemu ya "Seva Iliyoangaziwa" wakati wa kusakinisha. Hali ya mbio inaonekana katika chaguo za kukokotoa za setup_private_mount() zinazoitwa wakati wa utayarishaji wa nafasi ya majina ya sehemu ya kupachika kwa kifurushi cha snap. Chaguo hili la kukokotoa huunda saraka ya muda "/tmp/snap.$SNAP_NAME/tmp" au hutumia iliyopo ili kufunga saraka za kifurushi cha haraka ndani yake.

Kwa kuwa jina la saraka ya muda linaweza kutabirika, mshambulizi anaweza kubadilisha yaliyomo na kiungo cha mfano baada ya kuangalia mmiliki, lakini kabla ya kupiga simu ya mfumo wa mount. Kwa mfano, unaweza kuunda kiunganishi "/tmp/snap.lxd/tmp" katika saraka ya /tmp/snap.lxd inayoelekeza kwenye saraka ya kiholela, na simu ya mount() itafuata ulinganifu na kuweka saraka kwenye saraka. piga nafasi ya jina. Vivyo hivyo, unaweza kuweka yaliyomo kwenye /var/lib na, kwa kubadilisha /var/lib/snapd/mount/snap.snap-store.user-fstab, panga uwekaji wa saraka yako /etc katika nafasi ya majina ya kifurushi cha snap ili kupanga upakiaji wa maktaba yako kutoka kwa haki za mizizi kwa kuchukua nafasi ya /etc/ld.so.preload.

Imebainika kuwa kuunda unyonyaji iligeuka kuwa kazi isiyo ya kawaida, kwani matumizi ya snap-confine imeandikwa katika Go kwa kutumia mbinu salama za programu, ina ulinzi kulingana na wasifu wa AppArmor, simu za mfumo wa vichungi kulingana na utaratibu wa seccomp, na hutumia. nafasi ya jina ya mlima kwa kutengwa. Walakini, watafiti waliweza kuandaa unyonyaji wa kufanya kazi ili kupata haki za mizizi kwenye mfumo. Msimbo wa matumizi utachapishwa baada ya wiki chache baada ya watumiaji kusakinisha masasisho yaliyotolewa.

Chanzo: opennet.ru

Kuongeza maoni