OpenSMTPD-da masofaviy va mahalliy ildizga kirish imkonini beruvchi zaifliklar

Qualys kompaniyasi oshkor bo'ldi pochta serveridagi boshqa uzoqdan muhim zaiflik (CVE-2020-8794). OpenSMTPD, OpenBSD loyihasi tomonidan ishlab chiqilgan. Yanvar oyining oxirida aniqlangan kabi zaiflik, yangi masala ildiz foydalanuvchi huquqlariga ega serverda ixtiyoriy qobiq buyruqlarini masofadan turib bajarish imkonini beradi. Zaiflik bartaraf etildi masalada OpenSMTPD 6.6.4p1.

Muammo pochtani masofaviy pochta serveriga yetkazib beruvchi koddagi xatolik tufayli yuzaga keladi (kiruvchi ulanishlarni boshqaradigan kodda emas). Hujum mijoz tomonida ham, server tomonida ham mumkin. Mijoz tomonida, OpenSMTPD standart konfiguratsiyasida hujum qilish mumkin, bunda OpenSMTPD so'rovlarni faqat ichki tarmoq interfeysida (localhost) qabul qiladi va tashqi serverlarga pochta xabarlarini yuboradi. Zaiflikdan foydalanish uchun xatni yetkazib berish paytida OpenSMTPD tajovuzkor tomonidan boshqariladigan pochta serveri bilan seans o'rnatishi yoki tajovuzkor mijoz ulanishiga (MITM yoki DNS yoki BGP orqali hujumlar paytida qayta yo'naltirish) kirishi mumkin. ).

Server tomonidan hujum qilish uchun OpenSMTPD boshqa pochta serverlaridan tashqi tarmoq so'rovlarini qabul qilish yoki o'zboshimchalik bilan elektron pochtaga so'rov yuborish imkonini beruvchi uchinchi tomon xizmatlariga xizmat ko'rsatish uchun sozlanishi kerak (masalan, veb-saytlardagi manzilni tasdiqlash shakllari). Misol uchun, tajovuzkor OpenSMTPD serveriga ulanishi va noto'g'ri xat yuborishi mumkin (mavjud bo'lmagan foydalanuvchiga), bu esa tajovuzkor serveriga xato kodi (sakrash) bilan xat yuboradigan javobga olib keladi. OpenSMTPD tajovuzkor serveriga bildirishnoma yuborish uchun ulanganda tajovuzkor zaiflikdan foydalanishi mumkin. Hujum paytida kiritilgan qobiq buyruqlari OpenSMTPD qayta ishga tushirilganda ildiz huquqlari bilan bajariladigan faylga joylashtiriladi, shuning uchun tajovuzkor OpenSMTPD qayta ishga tushishini yoki hujumni yakunlash uchun OpenSMTPD ishdan chiqishini kutishi kerak.

Muammo ulanish o'rnatilgandan so'ng uzoq server tomonidan qaytarilgan ko'p qatorli javobni tahlil qilish kodidagi mta_io() funksiyasida mavjud (masalan, "250-ENHANCEDSTATUSCODES" va "250 HELP"). OpenSMTPD hisob-kitobiga ko'ra, birinchi qatorda "-" belgisi bilan ajratilgan uch xonali raqam va matn, ikkinchi qatorda esa bo'sh joy bilan ajratilgan uch xonali raqam va matn mavjud. Agar uch xonali raqamdan keyin ikkinchi qatorda boʻsh joy va matn boʻlmasa, matnni aniqlash uchun koʻrsatgich “\0” belgisidan keyin baytga oʻrnatiladi va oxiridan keyin maʼlumotlarni nusxalashga harakat qilinadi. chiziqdan buferga.

OpenBSD loyihasi talabiga koʻra, foydalanuvchilarga oʻz tizimlarini yangilash imkonini berish uchun zaiflikdan foydalanish haqidagi tafsilotlarni chop etish 26-fevralga qoldirildi. Muammo kodlar bazasida 2015-yil dekabr oyidan beri mavjud, ammo 2018-yilning may oyidan boshlab ildiz huquqlari bilan kodni bajarishdan oldin foydalanish mumkin edi. Tadqiqotchilar ekspluatatsiyaning ishchi prototipini tayyorladilar, u OpenBSD 6.6, OpenBSD 5.9, Debian 10, Debian 11 (sinov) va Fedora 31 uchun OpenSMTPD tuzilmalarida muvaffaqiyatli sinovdan o‘tkazildi.

OpenSMTPD da aniqlangan Mahalliy foydalanuvchiga tizimdagi istalgan faylning birinchi qatorini o‘qish imkonini beruvchi yana bir zaiflik (CVE-2020-8793). Misol uchun, ildiz foydalanuvchi parol xeshini o'z ichiga olgan /etc/master.passwd ning birinchi qatorini o'qishingiz mumkin. Zaiflik, shuningdek, boshqa foydalanuvchiga tegishli bo'lgan faylning butun tarkibini o'qish imkonini beradi, agar bu fayl /var/spool/smtpd/ katalogi bilan bir xil fayl tizimida joylashgan bo'lsa. /proc/sys/fs/protected_hardlinks qiymati 1 ga o'rnatilgan ko'pgina Linux distributivlarida muammodan foydalanib bo'lmaydi.

Muammo to'liq bartaraf etishning natijasidir muammolar, 2015 yilda Qualys tomonidan o'tkazilgan audit paytida aytilgan. Buzg'unchi "PATH=." o'zgaruvchisini o'rnatish orqali "_smtpq" guruhi huquqlari bilan o'z kodining bajarilishiga erishishi mumkin. va joriy katalogga makemap deb nomlangan skriptni joylashtirish (smtpctl yordam dasturi yo'lni aniq ko'rsatmasdan makemapni ishga tushiradi). "_smtpq" guruhiga kirish orqali tajovuzkor poyga holatini keltirib chiqarishi mumkin (oflayn katalogda katta fayl yaratish va SIGSTOP signalini yuborish) va ishlov berish tugagunga qadar oflayn katalogdagi faylni qattiq faylga almashtirishi mumkin. mazmuni o'qilishi kerak bo'lgan maqsadli faylga ishora qiluvchi symlink.

Shunisi e'tiborga loyiqki, Fedora 31-da zaiflik ildiz guruhining imtiyozlarini darhol olish imkonini beradi, chunki smtpctl jarayoni setgid smtpq bayrog'i o'rniga setgid ildiz bayrog'i bilan jihozlangan. Ildiz guruhiga kirish orqali siz /var/lib/sss/mc/passwd tarkibini qayta yozishingiz va tizimga to'liq ildiz kirish huquqiga ega bo'lishingiz mumkin.

Manba: opennet.ru

a Izoh qo'shish