Exim-dagi muhim zaiflik tafsilotlari aniqlandi

nashr etilgan tuzatuvchi chiqarish Exim 4.92.2 tanqidiyni yo'q qilish bilan zaifliklar (CVE-2019-15846), bu standart konfiguratsiyada ildiz huquqlariga ega bo'lgan tajovuzkor tomonidan masofaviy kod bajarilishiga olib kelishi mumkin. Muammo faqat TLS qo'llab-quvvatlashi yoqilganda paydo bo'ladi va SNI-ga maxsus ishlab chiqilgan mijoz sertifikati yoki o'zgartirilgan qiymatni o'tkazish orqali foydalaniladi. Zaiflik aniqlangan Qualys tomonidan.

muammo hozirgi satrdagi maxsus belgilardan qochish uchun ishlov beruvchida (string_interpret_escape() string.c dan) va satr oxiridagi '\' belgisi null belgisidan ('\0') oldin talqin qilinishi va undan qochishi natijasida yuzaga keladi. Qochishda '\' ketma-ketligi va keyingi null satr oxiri kodi bitta belgi sifatida ko'rib chiqiladi va ko'rsatgich satrdan tashqaridagi ma'lumotlarga o'tkaziladi, bu esa chiziqning davomi sifatida ko'rib chiqiladi.

string_interpret_escape() ni chaqiruvchi kod haqiqiy o'lchamga qarab drenaj uchun bufer ajratadi va ochilgan ko'rsatgich bufer chegaralaridan tashqarida joylashgan maydonda tugaydi. Shunga ko'ra, kirish satrini qayta ishlashga urinayotganda, ajratilgan bufer chegarasidan tashqarida joylashgan hududdan ma'lumotlarni o'qishda vaziyat yuzaga keladi va o'tkazilmagan satrni yozishga urinish bufer chegarasidan tashqarida yozishga olib kelishi mumkin.

Standart konfiguratsiyada zaiflikdan serverga xavfsiz ulanishni o'rnatishda SNI ga maxsus mo'ljallangan ma'lumotlarni yuborish orqali foydalanish mumkin. Muammoni mijoz sertifikati autentifikatsiyasi uchun sozlangan konfiguratsiyalardagi peerdn qiymatlarini o'zgartirish yoki sertifikatlarni import qilish orqali ham ishlatish mumkin. SNI va peerdn orqali hujum chiqarilgandan boshlab mumkin Exim 4.80, bunda string_unprinting() funksiyasi peerdn va SNI tarkibini chop etish uchun ishlatilgan.

Glibc bilan Linux tizimlarida i386 va amd64 arxitekturalarida ishlaydigan SNI orqali hujum qilish uchun ekspluatatsiya prototipi tayyorlangan. Ekspluatatsiya yig'ish maydonida ma'lumotlar qoplamasidan foydalanadi, natijada jurnal fayli nomi saqlanadigan xotirani qayta yozishga olib keladi. Fayl nomi "/../../../../../../../../etc/passwd" bilan almashtiriladi. Keyinchalik, jo'natuvchining manzili bo'lgan o'zgaruvchining ustiga yoziladi, u birinchi navbatda tizimga yangi foydalanuvchi qo'shish imkonini beruvchi jurnalda saqlanadi.

Distribyutorlar tomonidan chiqarilgan zaifliklar tuzatilgan paket yangilanishlari Debian, Ubuntu, Fedora, SUSE/openSUSE ΠΈ FreeBSD. RHEL va CentOS muammosi sezgir emas, chunki Exim ularning oddiy paketlar omboriga kiritilmagan (in ISIQ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ allaqachon shakllangan, lekin hozircha joylashtirilmagan umumiy omborga). Exim kodida muammo bir layner bilan hal qilinadi yamoq, agar u satr oxirida bo'lsa, teskari chiziqning qochish effektini o'chiradi.

Zaiflikni blokirovka qilish uchun vaqtinchalik yechim sifatida siz TLS qo'llab-quvvatlashini o'chirib qo'yishingiz yoki qo'shishingiz mumkin
ACL bo'limi "acl_smtp_mail":

shartni rad qilish = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
shartni rad qilish = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Manba: opennet.ru

a Izoh qo'shish