Athari katika ld.so OpenBSD

Kipakiaji chenye nguvu ld.hivyo, pamoja na OpenBSD, inaweza, chini ya hali fulani, SUID/SGID- programu huacha utofauti wa mazingira wa LD_LIBRARY_PATH na hivyo kuruhusu msimbo wa wahusika wengine kupakiwa katika muktadha wa mchakato unaoendeshwa na mapendeleo ya juu. Viraka vinavyorekebisha uwezekano wa kuathiriwa vinapatikana kwa matoleo 6.5 ΠΈ 6.6. Vipande vya binary (syspatch) kwa mifumo ya amd64, i386 na arm64 tayari iko katika toleo la umma na inapaswa kupatikana kwa kupakuliwa wakati habari hii inachapishwa.

Kiini cha tatizo: wakati wa operesheni, ld.so kwanza hutoa thamani ya kutofautiana kwa LD_LIBRARY_PATH kutoka kwa mazingira na, kwa kutumia _dl_split_path() kazi ya kukokotoa, huigeuza kuwa safu ya masharti - njia za saraka. Ikiwa baadaye inageuka kuwa mchakato wa sasa umeanza na programu ya SUID / SGID, basi safu iliyoundwa na, kwa kweli, kutofautiana kwa LD_LIBRARY_PATH kunafutwa. Wakati huo huo, ikiwa _dl_split_path() itaisha kumbukumbu (ambayo ni ngumu kwa sababu ya kikomo cha kB 256 juu ya saizi ya anuwai ya mazingira, lakini kinadharia inawezekana), basi utofauti wa _dl_libpath utapokea thamani NULL, na ukaguzi unaofuata wa thamani ya tofauti hii italazimisha kuruka simu hadi _dl_unsetenv("LD_LIBRARY_PATH").

Udhaifu unaopatikana na wataalam Wahusika, pia kadhaa zilizofunuliwa hapo awali matatizo. Watafiti wa usalama waliotambua uwezekano wa kuathiriwa walibainisha jinsi tatizo lilivyotatuliwa kwa haraka: kiraka kilitayarishwa na masasisho yalitolewa ndani ya saa tatu baada ya mradi wa OpenBSD kupokea arifa.

Nyongeza: Tatizo limepewa nambari CVE-2019-19726. Imetengenezwa kwenye orodha ya barua pepe ya oss-security tangazo rasmi, ikijumuisha unyonyaji wa mfano unaoendeshwa kwenye usanifu wa OpenBSD 6.6, 6.5, 6.2 na 6.1
amd64 na i386 (unyonyaji unaweza kubadilishwa kwa usanifu mwingine).
Suala hili linaweza kutumiwa katika usakinishaji chaguo-msingi na huruhusu mtumiaji wa ndani asiye na haki kutekeleza msimbo kama mzizi kupitia uingizwaji wa maktaba wakati wa kuendesha huduma za chpass au passwd suid. Ili kuunda hali ya kumbukumbu ya chini inayohitajika kwa uendeshaji, weka kikomo cha RLIMIT_DATA kupitia setrlimit.

Chanzo: opennet.ru

Kuongeza maoni