Dinamik yuklovchi OpenBSD-ga kiritilgan, ma'lum sharoitlarda, - ilovalar LD_LIBRARY_PATH muhit o'zgaruvchisini tark etadi va shu bilan yuqori imtiyozlar bilan ishlaydigan jarayon kontekstida uchinchi tomon kodini yuklashga ruxsat beradi. Zaiflikni tuzatuvchi yamoqlar relizlar uchun mavjud и . Ikkilik yamoqlar () amd64, i386 va arm64 platformalari uchun allaqachon ishlab chiqarilmoqda va bu yangilik chop etilgunga qadar yuklab olish mumkin bo'lishi kerak.
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 , shu qatorda; shu bilan birga muammolar. Zaiflikni aniqlagan xavfsizlik tadqiqotchilari muammo qanchalik tez hal qilinganini qayd etishdi: yamoq tayyorlandi va yangilanishlar OpenBSD loyihasi bildirishnoma olganidan keyin uch soat ichida chiqarildi.
Qo'shimcha: muammoga raqam berildi . Oss-xavfsizlik pochta ro'yxatida tuzilgan , shu jumladan OpenBSD 6.6, 6.5, 6.2 va 6.1 arxitekturalarida ishlaydigan ekspluatatsiya prototipi
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
