Kargagailu dinamikoa
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
Gehigarria: arazoari zenbaki bat esleitu zaio
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