problem
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
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
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