OpenSMTPD-də kökə uzaqdan və yerli girişə imkan verən boşluqlar

Qualys şirkəti ortaya qoydu poçt serverində digər uzaqdan kritik boşluq (CVE-2020-8794). OpenSMTPD, OpenBSD layihəsi tərəfindən hazırlanmışdır. Yanvarın sonunda müəyyən edilən kimi zəiflik, yeni buraxılış kök istifadəçi hüquqları olan serverdə ixtiyari qabıq əmrlərini uzaqdan icra etməyə imkan verir. Zəiflik aradan qaldırıldı məsələdə OpenSMTPD 6.6.4p1.

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ə müəyyən edilmişdir Yerli istifadəçiyə sistemdəki istənilən faylın birinci sətrini oxumağa imkan verən başqa bir boşluq (CVE-2020-8793). Məsələn, kök istifadəçinin parol hashini ehtiva edən /etc/master.passwd birinci sətrini oxuya bilərsiniz. Zəiflik həmçinin başqa istifadəçiyə məxsus faylın bütün məzmununu oxumağa imkan verir, əgər bu fayl /var/spool/smtpd/ kataloqu ilə eyni fayl sistemində yerləşir. /proc/sys/fs/protected_hardlinks dəyərinin 1-ə təyin edildiyi bir çox Linux paylamalarında problemdən istifadə etmək mümkün deyil.

Problem natamam aradan qaldırılmasının nəticəsidir problemlər, 2015-ci ildə Qualys tərəfindən aparılan audit zamanı səsləndirilib. Təcavüzkar “PATH=.” dəyişənini təyin etməklə “_smtpq” qrupunun hüquqları ilə kodunun icrasına nail ola bilər. və cari qovluğa makemap adlı skriptin yerləşdirilməsi (smtpctl yardım proqramı yolu aydın şəkildə göstərmədən makemap-i işə salır). "_smtpq" qrupuna giriş əldə etməklə, təcavüzkar yarış vəziyyətinə səbəb ola bilər (oflayn kataloqda böyük bir fayl yarada və SIGSTOP siqnalı göndər) və emal tamamlanmamışdan əvvəl oflayn qovluqdakı faylı sərt fayl ilə əvəz edə bilər. məzmunu oxunmalı olan hədəf fayla işarə edən simvolik əlaqə.

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

Добавить комментарий