Teraz wszyscy, którzy pilnie dokonali aktualizacji, mogą znów „radować się”: 21 lipca 2019 r. badacz Zerons odkrył krytyczną lukę w zabezpieczeniach Agent przesyłania poczty Exim (MTA) w przypadku korzystania z protokołu TLS dla wersji z 4.80 4.92.1 się włącznie, umożliwiając zdalne wykonaj kod z uprawnieniami uprzywilejowanymi (CVE-2019-15846).
Słaby punkt
Luka występuje podczas korzystania z bibliotek GnuTLS i OpenSSL podczas ustanawiania bezpiecznego połączenia TLS.
Według programisty Heiko Schlittermanna plik konfiguracyjny w Eximie domyślnie nie korzysta z TLS, ale wiele dystrybucji tworzy niezbędne certyfikaty podczas instalacji i umożliwia bezpieczne połączenie. Opcję instalują także nowsze wersje Exima tls_advertise_hosts=* i wygenerować niezbędne certyfikaty.
zależy od konfiguracji. Większość dystrybucji domyślnie to włącza, ale Exim potrzebuje certyfikatu + klucza, aby działać jako serwer TLS. Prawdopodobnie Distros tworzy certyfikat podczas instalacji. Nowsze Eximy mają domyślną opcję tls_advertise_hosts ustawioną na „*” i tworzą certyfikat z podpisem własnym, jeśli nie podano żadnego.
Sama luka polega na nieprawidłowym przetwarzaniu SNI (Server Name Indication, technologii wprowadzonej w 2003 roku w RFC 3546, aby klient mógł zażądać prawidłowego certyfikatu dla nazwy domeny, Dystrybucja standardu TLS SNI / Blog Grupy WEBO / Sudo Null IT News) podczas uzgadniania TLS. Osoba atakująca musi jedynie wysłać kod SNI kończący się ukośnikiem odwrotnym („”) i znakiem zerowym („”).
Badacze z Qualys odkryli błąd w funkcji string_printing(tls_in.sni), który polega na nieprawidłowej zmianie znaku „”. W rezultacie ukośnik odwrotny jest zapisywany bez zmiany znaczenia w pliku nagłówkowym bufora wydruku. Plik ten jest następnie odczytywany z uprawnieniami uprzywilejowanymi przez funkcję spool_read_header(), co prowadzi do przepełnienia sterty.
Warto zauważyć, że w tej chwili programiści Exima stworzyli PoC luk w zabezpieczeniach z wykonaniem poleceń na zdalnym podatnym serwerze, ale nie jest on jeszcze publicznie dostępny. Ze względu na łatwość wykorzystania błędu jest to tylko kwestia czasu i dość krótkie.
Bardziej szczegółowe badanie przeprowadzone przez Qualys można znaleźć tutaj.
Używanie SNI w TLS
Liczba potencjalnie podatnych na ataki serwerów publicznych
Według statystyk dużego dostawcy usług hostingowych Firma E-Soft Inc od 1 września na wynajmowanych serwerach wersja 4.92 używana jest u ponad 70% hostów.
Wersja
Liczba serwerów
Procent
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%
Inne wersje
25568
5.04%
Statystyki firmy E-Soft Inc
Jeśli korzystasz z wyszukiwarki Shodan, a następnie z 5,250,000 XNUMX XNUMX w bazie danych serwera:
około 3,500,000 4.92 1,380,000 używa Exima XNUMX (około XNUMX XNUMX XNUMX używa SSL/TLS);
ponad 74,000 4.92.1 przy użyciu wersji 25,000 (około XNUMX XNUMX przy użyciu protokołu SSL/TLS).
W związku z tym liczba publicznie znanych i dostępnych serwerów Exim, które są potencjalnie podatne na ataki, wynosi około 1.5 milionów.
Wyszukaj serwery Exim w Shodan
ochrona
Najprostszą, ale niezalecaną opcją jest rezygnacja z protokołu TLS, co spowoduje, że wiadomości e-mail będą przekazywane w sposób jawny.
Aby uniknąć wykorzystania luki, lepiej byłoby zaktualizować ją do odpowiedniej wersji Exim Internet Mailer 4.92.2.
Jeśli nie jest możliwa aktualizacja lub instalacja poprawionej wersji, możesz ustawić listę ACL w konfiguracji Exima dla opcji acl_smtp_mail z następującymi zasadami:
# 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}}}}