Exim'deki kritik güvenlik açığının ayrıntıları ortaya çıktı

yayınlanan düzeltici sürüm Örnek 4.92.2 kritiklerin ortadan kaldırılmasıyla güvenlik açıkları (CVE-2019-15846), bu da varsayılan yapılandırmada kök ayrıcalıklarına sahip bir saldırganın uzaktan kod yürütmesine yol açabilir. Sorun yalnızca TLS desteği etkinleştirildiğinde ortaya çıkıyor ve özel olarak tasarlanmış bir istemci sertifikasının veya değiştirilmiş değerin SNI'ya iletilmesiyle bu sorundan yararlanılıyor. Güvenlik Açığı tanımlanmış Qualys tarafından.

Sorun mevcut dizedeki özel karakterlerden kaçmak için işleyicide (string_interpret_escape() string.c'den) ve dizenin sonundaki '\' karakterinin boş karakterden ('\0') önce yorumlanıp ondan kaçmasından kaynaklanır. Kaçarken, '\' dizisi ve aşağıdaki boş satır sonu kodu tek bir karakter olarak ele alınır ve işaretçi, satırın devamı olarak kabul edilen satırın dışındaki verilere kaydırılır.

string_interpret_escape() öğesini çağıran kod, gerçek boyuta dayalı olarak drenaj için bir arabellek ayırır ve açığa çıkan işaretçi, arabelleğin sınırlarının dışındaki bir alanda sona erer. Buna göre, bir giriş dizesini işlemeye çalışırken, tahsis edilen arabelleğin sınırları dışındaki bir alandan veri okurken bir durum ortaya çıkar ve çıkış yapılmamış bir dize yazma girişimi, arabellek sınırlarının ötesine yazmaya yol açabilir.

Varsayılan yapılandırmada, sunucuyla güvenli bağlantı kurulurken SNI'ya özel tasarlanmış veriler gönderilerek bu güvenlik açığından yararlanılabilir. İstemci sertifikası kimlik doğrulaması için yapılandırılmış yapılandırmalarda veya sertifikalar içe aktarılırken eşdüzey değerleri değiştirilerek de bu sorundan yararlanılabilir. Sürümden itibaren SNI ve Peedn yoluyla saldırı mümkündür Örnek 4.80, burada string_unprinting() işlevi eşleştirilmiş ve SNI içeriklerinin çıktısını almak için kullanıldı.

Glibc ile Linux sistemlerde i386 ve amd64 mimarileri üzerinde çalışan, SNI üzerinden yapılacak saldırı için bir istismar prototipi hazırlandı. Bu istismar, yığın alanındaki veri katmanını kullanarak günlük dosyası adının saklandığı belleğin üzerine yazılmasına neden olur. Dosya adı "/../../../../../../../../etc/passwd" ile değiştirilir. Daha sonra, gönderenin adresini içeren değişkenin üzerine yazılır; bu, ilk önce günlüğe kaydedilir ve bu, sisteme yeni bir kullanıcı eklemenizi sağlar.

Dağıtımlar tarafından yayımlanan güvenlik açığı düzeltmelerini içeren paket güncellemeleri Debian, Ubuntu, Fötr şapka, SUSE/openSUSE и FreeBSD. RHEL ve CentOS sorunu duyarlı değilExim normal paket deposunda bulunmadığından (içinde ILIK обновление zaten oluşturulanama şimdilik yerleştirilmedi halka açık bir depoya). Exim kodunda sorun tek satırlık bir yazıyla giderildi yamasatırın sonundaysa ters eğik çizginin kaçma efektini devre dışı bırakır.

Güvenlik açığını engellemek için geçici bir çözüm olarak TLS desteğini devre dışı bırakabilir veya
EKL bölümü “acl_smtp_mail”:

reddetme koşulu = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
reddetme koşulu = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Kaynak: opennet.ru

Yorum ekle