Chargeur dinamik
Sans nan pwoblèm nan: pandan operasyon an, ld.so premye ekstrè valè a nan varyab LD_LIBRARY_PATH nan anviwònman an epi, lè l sèvi avèk fonksyon _dl_split_path() , vire l 'nan yon etalaj de fisèl - chemen nan anyè. Si pita parèt ke pwosesis aktyèl la te kòmanse pa yon aplikasyon SUID/SGID, Lè sa a, etalaj la kreye ak, an reyalite, varyab LD_LIBRARY_PATH yo efase. An menm tan an, si _dl_split_path() fini nan memwa (ki difisil akòz limit eksplisit 256 kB sou gwosè varyab anviwònman an, men teyorikman posib), Lè sa a, varyab _dl_libpath la pral resevwa valè NULL, ak chèk ki vin apre yo. valè varyab sa a ap fòse sote apèl la nan _dl_unsetenv ("LD_LIBRARY_PATH").
Ekspè yo te jwenn vilnerabilite
Anplis de sa: yo te bay pwoblèm nan yon nimewo
amd64 ak i386 (esplwatasyon an ka adapte pou lòt achitekti).
Pwoblèm nan se eksplwate nan enstalasyon an default epi li pèmèt yon itilizatè lokal san privilèj egzekite kòd kòm rasin atravè sibstitisyon bibliyotèk lè w ap kouri sèvis piblik chpass oswa passwd suid. Pou kreye kondisyon ki ba-memwa ki nesesè pou operasyon an, mete limit RLIMIT_DATA atravè setrlimit.
Sous: opennet.ru