Loader dinamis
Intina masalah: salila operasi, ld.so mimiti extracts nilai variabel LD_LIBRARY_PATH ti lingkungan jeung, ngagunakeun _dl_split_path () fungsi, robah jadi hiji Asép Sunandar Sunarya ti string - jalur ka directories. Lamun engké tétéla yén prosés ayeuna dimimitian ku aplikasi SUID / SGID, lajeng susunan dijieun na, kanyataanna, variabel LD_LIBRARY_PATH diberesihan. Dina waktos anu sami, upami _dl_split_path () béak mémori (anu sesah kusabab wates eksplisit 256 kB dina ukuran variabel lingkungan, tapi sacara téoritis mungkin), maka variabel _dl_libpath bakal nampi nilai NULL, sareng cek salajengna nilai variabel ieu bakal maksa skip télépon ka _dl_unsetenv ("LD_LIBRARY_PATH").
Kerentanan kapanggih ku para ahli
Tambahan: Masalahna parantos ditugaskeun nomer
amd64 sareng i386 (eksploitasi tiasa diadaptasi pikeun arsitéktur anu sanés).
Masalahna tiasa dieksploitasi dina pamasangan standar sareng ngamungkinkeun pangguna lokal anu henteu ngagaduhan hak pikeun ngaéksekusi kode salaku akar via substitusi perpustakaan nalika ngajalankeun chpass atanapi passwd suid utiliti. Pikeun nyieun kaayaan-memori low dipikabutuh pikeun operasi, set RLIMIT_DATA wates via setrlimit.
sumber: opennet.ru