FreeBSD-ga kiritilgan ping yordam dasturida uzoqdan foydalanish mumkin bo'lgan ildiz zaifligi

FreeBSD-da asosiy taqsimotga kiritilgan ping yordam dasturida zaiflik (CVE-2022-23093) aniqlangan. Muammo tajovuzkor tomonidan boshqariladigan tashqi xostga ping yuborilganda ildiz huquqlari bilan masofaviy kod bajarilishiga olib kelishi mumkin. Tuzatish FreeBSD 13.1-RELEASE-p5, 12.4-RC2-p2 va 12.3-RELEASE-p10 yangilanishlarida taqdim etilgan. Aniqlangan zaiflik boshqa BSD tizimlariga ta'sir qiladimi yoki yo'qmi hali aniq emas (NetBSD, DragonFlyBSD va OpenBSD-da zaifliklar haqida hozircha xabarlar yo'q).

Zaiflik tekshirish so'roviga javoban olingan ICMP xabarlari uchun tahlil kodidagi buferning to'lib ketishi natijasida yuzaga keladi. Pingda ICMP xabarlarini jo'natish va qabul qilish uchun kod xom soketlardan foydalanadi va yuqori imtiyozlar bilan bajariladi (yordamchi dastur setuid ildiz bayrog'i bilan birga keladi). Javob ping tomonida xom rozetkadan olingan paketlarning IP va ICMP sarlavhalarini qayta tiklash orqali qayta ishlanadi. Tanlangan IP va ICMP sarlavhalari paketda IP sarlavhasidan keyin qo'shimcha kengaytirilgan sarlavhalar bo'lishi mumkinligini hisobga olmagan holda pr_pack() yordamida buferlarga ko'chiriladi.

Bunday sarlavhalar paketdan chiqariladi va sarlavha blokiga kiritiladi, lekin bufer hajmini hisoblashda hisobga olinmaydi. Agar xost yuborilgan ICMP so'roviga javoban qo'shimcha sarlavhalar bilan paketni qaytarsa, ularning mazmuni stekdagi bufer chegarasidan tashqaridagi maydonga yoziladi. Natijada, tajovuzkor stekdagi 40 baytgacha ma'lumotni qayta yozishi mumkin, bu esa o'z kodini bajarishga imkon beradi. Muammoning jiddiyligi xatolik yuzaga kelgan vaqtda jarayon tizim chaqiruvi izolyatsiyasi (qobiliyat rejimi) holatida bo'lishi bilan yumshatiladi, bu zaiflikdan foydalangandan so'ng tizimning qolgan qismiga kirishni qiyinlashtiradi. .

Manba: opennet.ru

a Izoh qo'shish