Zaurgarritasuna ld.so OpenBSD-n

Kargagailu dinamikoa ld.beraz, OpenBSD-rekin batera sartuta, baliteke, baldintza jakin batzuetan, SUID/SGID- Aplikazioek LD_LIBRARY_PATH ingurune-aldagaia uzten dute eta, beraz, hirugarrenen kodea kargatzeko aukera ematen dute pribilegio handiekin exekutatzen den prozesu baten testuinguruan. Ahultasuna konpontzen duten adabakiak eskuragarri daude bertsioetarako 6.5 ΠΈ 6.6. Adabaki bitarrak (syspatch) amd64, i386 eta arm64 plataformetarako dagoeneko ekoizten ari dira eta albiste hau argitaratzen den unean deskargatu beharko litzateke.

Arazoaren funtsa: funtzionamenduan zehar, ld.so-k lehenik LD_LIBRARY_PATH aldagaiaren balioa ateratzen du ingurunetik eta, _dl_split_path() funtzioa erabiliz, kate sorta batean bihurtzen du - direktorioetarako bideak. Geroago gertatzen bada uneko prozesua SUID/SGID aplikazio batek abiarazi duela, orduan sortutako array-a eta, hain zuzen ere, LD_LIBRARY_PATH aldagaia garbitu egingo dira. Aldi berean, _dl_split_path() memoriarik gabe geratzen bada (hori zaila da ingurune-aldagaien tamainaren 256 kB-ko muga esplizitua dela eta, baina teorikoki posiblea), orduan _dl_libpath aldagaiak NULL balioa jasoko du, eta ondorengo egiaztapenak. aldagai honen balioak _dl_unsetenv ("LD_LIBRARY_PATH") deia saltatzera behartuko du.

Adituek aurkitutako ahultasuna Qualyrena, baita aurretik ezagutarazitako hainbat arazoak. Ahultasuna identifikatu zuten segurtasun-ikertzaileek arazoa zein azkar konpondu zen adierazi zuten: adabaki bat prestatu zen eta eguneraketak kaleratu ziren OpenBSD proiektuak jakinarazpena jaso eta hiru orduko epean.

Gehigarria: arazoari zenbaki bat esleitu zaio CVE-2019-19726. oss-security posta-zerrendan egina iragarpen ofiziala, OpenBSD 6.6, 6.5, 6.2 eta 6.1 arkitekturan exekutatzen den prototipo bat barne
amd64 eta i386 (explotazioa beste arkitektura batzuetarako egokitu daiteke).
Arazoa lehenetsitako instalazioan ustiatu daiteke eta pribilegiorik gabeko tokiko erabiltzaile bati kodea exekutatu ahal izango du root gisa liburutegiaren ordezkapenaren bidez, chpass edo passwd suid utilitateak exekutatzen direnean. Funtzionatzeko beharrezkoak diren memoria gutxiko baldintzak sortzeko, ezarri RLIMIT_DATA muga setrlimit bidez.

Iturria: opennet.ru

Gehitu iruzkin berria