Qualys şirkəti
Problem poçtu uzaq poçt serverinə çatdıran koddakı səhvdən qaynaqlanır (daxil olan əlaqələri idarə edən kodda deyil). Hücum həm müştəri tərəfində, həm də server tərəfində mümkündür. Müştəri tərəfində hücum OpenSMTPD-nin standart konfiqurasiyasında mümkündür, burada OpenSMTPD yalnız daxili şəbəkə interfeysində (localhost) sorğuları qəbul edir və xarici serverlərə poçt mesajları göndərir. Zəiflikdən istifadə etmək üçün məktubun çatdırılması zamanı OpenSMTPD-nin təcavüzkar tərəfindən idarə olunan poçt serveri ilə sessiya qurması və ya təcavüzkarın müştəri əlaqəsinə (MITM və ya DNS və ya BGP vasitəsilə hücumlar zamanı yönləndirmə) daxil ola bilməsi kifayətdir. ).
Server tərəfdən hücum üçün OpenSMTPD digər poçt serverlərindən xarici şəbəkə sorğularını qəbul etmək və ya ixtiyari e-poçta sorğu göndərməyə imkan verən üçüncü tərəf xidmətlərinə xidmət etmək üçün konfiqurasiya edilməlidir (məsələn, vebsaytlarda ünvan təsdiqi formaları). Məsələn, təcavüzkar OpenSMTPD serverinə qoşula və səhv məktub (mövcud olmayan istifadəçiyə) göndərə bilər ki, bu da təcavüzkarın serverinə xəta kodu (sıçrayış) olan məktubun göndərilməsinə səbəb olacaq. OpenSMTPD təcavüzkarın serverinə bildiriş çatdırmaq üçün qoşulduqda təcavüzkar zəiflikdən istifadə edə bilər. Hücum zamanı yeridilmiş qabıq əmrləri OpenSMTPD yenidən işə salındıqda kök hüquqları ilə icra edilən fayla yerləşdirilir, buna görə də təcavüzkar OpenSMTPD-nin yenidən başlamasını və ya hücumu başa çatdırmaq üçün OpenSMTPD-nin qəzaya uğramasını gözləməlidir.
Problem əlaqə qurulduqdan sonra uzaq server tərəfindən qaytarılan çoxsətirli cavabın təhlili üçün kodda mta_io() funksiyasında mövcuddur (məsələn, "250-ENHANCEDSTATUSCODES" və "250 HELP"). OpenSMTPD hesablayır ki, birinci sətir üçrəqəmli rəqəm və “-” simvolu ilə ayrılmış mətn, ikinci sətir isə boşluqla ayrılmış üç rəqəmli nömrə və mətndən ibarətdir. Üç rəqəmli rəqəmin ardınca boşluq və ikinci sətirdə mətn yoxdursa, mətni müəyyən etmək üçün istifadə olunan göstərici '\0' simvolundan sonra bayta təyin edilir və sonundan sonra məlumatları köçürməyə cəhd edilir. xətti buferə daxil edin.
OpenBSD layihəsinin tələbi ilə istifadəçilərə sistemlərini yeniləmək imkanı vermək üçün zəifliyin istismarı ilə bağlı təfərrüatların dərci fevralın 26-dək təxirə salınıb. Problem kod bazasında 2015-ci ilin dekabr ayından mövcuddur, lakin kök imtiyazları ilə kodun icrasından əvvəl istismar 2018-ci ilin may ayından mümkün olmuşdur. Tədqiqatçılar OpenBSD 6.6, OpenBSD 5.9, Debian 10, Debian 11 (sınaq) və Fedora 31 üçün OpenSMTPD konstruksiyalarında uğurla sınaqdan keçirilmiş istismarın işləyən prototipini hazırladılar.
OpenSMTPD-də də
Problem natamam aradan qaldırılmasının nəticəsidir
Maraqlıdır ki, Fedora 31-də zəiflik dərhal kök qrupunun imtiyazlarını əldə etməyə imkan verir, çünki smtpctl prosesi setgid smtpq bayrağı əvəzinə setgid kök bayrağı ilə təchiz edilmişdir. Kök qrupuna giriş əldə etməklə siz /var/lib/sss/mc/passwd məzmununun üzərinə yaza və sistemə tam kök girişi əldə edə bilərsiniz.
Mənbə: opennet.ru