Dinamik yuklovchi
Muammoning mohiyati: ish paytida ld.so birinchi navbatda LD_LIBRARY_PATH o'zgaruvchisining qiymatini muhitdan ajratib oladi va _dl_split_path() funksiyasidan foydalanib, uni qatorlar massiviga - kataloglarga yo'llarga aylantiradi. Agar keyinchalik joriy jarayon SUID/SGID ilovasi tomonidan boshlanganligi aniqlansa, yaratilgan massiv va aslida LD_LIBRARY_PATH o'zgaruvchisi tozalanadi. Shu bilan birga, agar _dl_split_path() xotirasi tugasa (bu muhit oʻzgaruvchilari oʻlchamidagi aniq 256 kB chegarasi tufayli qiyin, lekin nazariy jihatdan mumkin), u holda _dl_libpath oʻzgaruvchisi NULL qiymatini oladi va keyingi tekshiruvdan oʻtadi. ushbu o'zgaruvchining qiymati _dl_unsetenv("LD_LIBRARY_PATH") ga qo'ng'iroqni o'tkazib yuborishga olib keladi.
Mutaxassislar tomonidan aniqlangan zaiflik
Qo'shimcha: muammoga raqam berildi
amd64 va i386 (ekspluatatsiya boshqa arxitekturalar uchun moslashtirilishi mumkin).
Muammo standart o'rnatishda ishlatilishi mumkin va imtiyozsiz mahalliy foydalanuvchiga chpass yoki passwd yordamchi dasturlarini ishga tushirishda kutubxonani almashtirish orqali kodni ildiz sifatida bajarishga imkon beradi. Ishlash uchun zarur bo'lgan kam xotira sharoitlarini yaratish uchun setrlimit orqali RLIMIT_DATA chegarasini o'rnating.
Manba: opennet.ru