Exim Yamalı - tekrar yama yapın. Tek istekte Exim 4.92'de Yeni Uzaktan Komut Yürütme

Exim Yamalı - tekrar yama yapın. Tek istekte Exim 4.92'de Yeni Uzaktan Komut Yürütme

Совсем недавно, в начале лета, появились массовые призывы к обновлению Exim до версии 4.92 из-за уязвимости CVE-2019-10149 (Срочно обновляйте exim до 4.92 — идёт активное заражение / Хабр). А на днях выяснилось, что вредонос Sustes решил воспользоваться этой уязвимостью.

Теперь все экстренно обновившиеся могут опять «порадоваться»: 21 июля 2019 г. исследователь Zerons обнаружил критическую уязвимость в TLS kullanırken Exim Mail Transfer aracısı (MTA) sürümleri için 4.80 için 4.92.1 dahil, uzaktan kumandaya izin veriyor ayrıcalıklı haklara sahip kod yürütme (CVE-2019-15846).

Güvenlik açığı

Уязвимость присутствует при использовании библиотек как GnuTLS, так и OpenSSL при установке защищенного TLS-соединения.

По словам разработчика Heiko Schlittermann, файл конфигурации в Exim по умолчанию не использует TLS, однако многие дистрибутивы во время установки создают необходимые сертификаты и включают защищенное соединение. Также более новые версии Exim устанавливают опцию tls_advertise_hosts=* ve gerekli sertifikaları oluşturun.

konfigürasyona bağlıdır. Çoğu dağıtım bunu varsayılan olarak etkinleştirir, ancak Exim'in TLS sunucusu olarak çalışması için bir sertifika+anahtara ihtiyacı vardır. Muhtemelen Distros kurulum sırasında bir Sertifika oluşturur. Daha yeni Exim'lerde tls_advertise_hosts seçeneği varsayılan olarak "*" olarak ayarlanır ve eğer sağlanmadıysa kendinden imzalı bir sertifika oluşturur.

Сама же уязвимость заключается в некорректной обработке SNI (Server Name Indication, технология, введенная в 2003 в RFC 3546 для запроса клиентом корректного сертификата для доменного имени, TLS SNI standardının dağıtımı / WEBO Grup Blogu / Sudo Null IT News) в ходе TLS-рукопожатия. Злоумышленнику достаточно отправить SNI, оканчивающийся бэкслешем («») и нулл-символом (» «).

Исследователи из компании Qualys обнаружили баг в функции string_printing(tls_in.sni), который заключается в некорректном экранировании «». В результате происходит запись обратного слеша в неэкранированном виде в файл заголовков print spool. Далее этот файл с привилегированными правами считывается функцией spool_read_header(), что ведет к переполнению кучи (heap overflow).

Стоит отметить, что на данный момент разработчики Exim создали PoC уязвимости с выполнением команд на удаленном уязвимом сервере, но в публичном доступе он пока отсутствует. В силу простоты эксплуатации бага это всего лишь вопрос времени, причем довольно короткого.

Qualys'in daha ayrıntılı bir çalışmasını burada bulabilirsiniz burada.

Exim Yamalı - tekrar yama yapın. Tek istekte Exim 4.92'de Yeni Uzaktan Komut Yürütme

TLS'de SNI kullanma

Potansiyel olarak güvenlik açığı bulunan genel sunucuların sayısı

Büyük bir barındırma sağlayıcısının istatistiklerine göre E-Soft A.Ş. на 1 сентября, на арендованных серверах версия 4.92 используется в более чем 70% хостов.

Sürümü
Sunucu Sayısı
Yüzde

4.92.1
6471
%1.28

4.92
376436
%74.22

4.91
58179
%11.47

4.9
5732
%1.13

4.89
10700
%2.11

4.87
14177
%2.80

4.84
9937
%1.96

Diğer sürümler
25568
%5.04

E-Soft Inc şirket istatistikleri

Bir arama motoru kullanıyorsanız Shodan, ardından sunucu veritabanındaki 5,250,000'den:

  • около 3,500,000 используют Exim 4.92 (около 1,380,000 с использованием SSL/TLS);
  • 74,000 kullanarak 4.92.1'in üzerinde (SSL/TLS kullanarak yaklaşık 25,000).

Таким образом, публично известных и доступных Exim потенциально уязвимых серверов насчитывается порядка 1.5 milyon.

Exim Yamalı - tekrar yama yapın. Tek istekte Exim 4.92'de Yeni Uzaktan Komut Yürütme

Shodan'da Exim sunucularını arayın

koruma

  • Самый простой, но не рекомендуемый вариант — не использовать TLS, что приведет к пересылке почтовых сообщений в открытом виде.
  • Более предпочтительным для избежания эксплуатации уязвимости будет обновление до версии Exim İnternet Posta Göndericisi 4.92.2.
  • В случае невозможности обновления или установки пропатченной версии можно задать ACL в конфигурации Exim для опции acl_smtp_mail aşağıdaki kurallarla:
    # to be prepended to your mail acl (the ACL referenced
    # by the acl_smtp_mail main config option)
    deny    condition = ${if eq{}{${substr{-1}{1}{$tls_in_sni}}}}
    deny    condition = ${if eq{}{${substr{-1}{1}{$tls_in_peerdn}}}}

Kaynak: habr.com

Yorum ekle