Exim-in kritik zəifliyi aşkar edildi

nəşr edilmişdir düzəldici buraxılış Exim 4.92.2 kritikin aradan qaldırılması ilə zəifliklər (CVE-2019-15846), bu, standart konfiqurasiyada kök imtiyazları olan təcavüzkar tərəfindən uzaqdan kodun icrasına səbəb ola bilər. Problem yalnız TLS dəstəyi aktiv olduqda və SNI-ə xüsusi hazırlanmış müştəri sertifikatı və ya dəyişdirilmiş dəyər ötürüldükdə istifadə edildikdə ortaya çıxır. Zəiflik müəyyən edilmişdir Qualys tərəfindən.

problem indiki sətirdəki xüsusi simvollardan qaçmaq üçün işləyicidə (string_interpret_escape() string.c-dən) və sətrin sonundakı '\' simvolunun null simvolundan ('\0') əvvəl şərh edilməsi və ondan qaçması ilə yaranır. Qaçarkən '\' ardıcıllığı və aşağıdakı null sətir sonu kodu tək simvol kimi qəbul edilir və göstərici xəttin davamı kimi qəbul edilən sətirdən kənar verilənlərə köçürülür.

string_interpret_escape() çağıran kod faktiki ölçüyə əsasən drenaj üçün bufer ayırır və məruz qalmış göstərici buferin hüdudlarından kənarda bir sahədə bitir. Müvafiq olaraq, bir giriş sətrini emal etməyə çalışarkən, ayrılmış buferin hüdudlarından kənarda olan bir sahədən məlumatların oxunması zamanı vəziyyət yaranır və çıxılmamış sətir yazmaq cəhdi buferin hüdudlarından kənarda yazmağa səbəb ola bilər.

Defolt konfiqurasiyada, serverə təhlükəsiz əlaqə qurarkən xüsusi hazırlanmış məlumatların SNI-yə göndərilməsi ilə zəiflikdən istifadə etmək olar. Problem müştəri sertifikatının autentifikasiyası üçün konfiqurasiya edilmiş konfiqurasiyalarda peerdn dəyərlərini dəyişdirməklə və ya sertifikatları idxal edərkən də istifadə edilə bilər. SNI və peerdn vasitəsilə hücum buraxılışdan başlayaraq mümkündür Exim 4.80, burada string_unprinting() funksiyası peerdn və SNI məzmununu çapdan çıxarmaq üçün istifadə edilmişdir.

Glibc ilə Linux sistemlərində i386 və amd64 arxitekturalarında işləyən SNI vasitəsilə hücum üçün istismar prototipi hazırlanmışdır. İstismar yığın sahəsində verilənlərin üst-üstə düşməsindən istifadə edir, nəticədə log faylının adının saxlandığı yaddaşın üzərinə yazılar. Fayl adı "/../../../../../../../../etc/passwd" ilə əvəz olunur. Daha sonra, göndərənin ünvanı olan dəyişənin üzərinə yazılır, bu, əvvəlcə sistemə yeni istifadəçi əlavə etməyə imkan verən jurnalda saxlanılır.

Dağıtımlar tərəfindən buraxılan zəiflik aradan qaldırılması ilə paket yeniləmələri Debian, Ubuntu, Fedora, SUSE/openSUSE и FreeBSD. RHEL və CentOS problemi həssas deyil, çünki Exim onların adi paket deposuna daxil deyil (in İSTİ обновление artıq formalaşmışdır, amma hələlik yerləşdirilməyib ictimai depoya). Exim kodunda problem bir laynerlə həll olunur yamaq, sətrin sonunda olarsa tərs kəsişmənin qaçma effektini aradan qaldırır.

Zəifliyi bloklamaq üçün həll yolu kimi TLS dəstəyini söndürə və ya əlavə edə bilərsiniz
ACL bölməsi "acl_smtp_mail":

şərti inkar etmək = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
şərti rədd etmək = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Mənbə: opennet.ru

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