Patched Exim - menambal lagi. Eksekusi Perintah Jarak Jauh Baru di Exim 4.92 dalam satu permintaan

Patched Exim - menambal lagi. Eksekusi Perintah Jarak Jauh Baru di Exim 4.92 dalam satu permintaan

Baru-baru ini, di awal musim panas, terdapat seruan luas agar Exim diperbarui ke versi 4.92 karena kerentanan CVE-2019-10149 (Segera perbarui Exim ke 4.92 - ada infeksi aktif / Sudo Null IT News). Dan baru-baru ini ternyata malware Sustes memutuskan untuk memanfaatkan kerentanan tersebut.

Sekarang semua orang yang segera memperbarui dapat “bersukacita” lagi: pada 21 Juli 2019, peneliti Zerons menemukan kerentanan kritis di Agen Exim Mail Transfer (MTA) saat menggunakan TLS untuk versi dari 4.80 4.92.1 up inklusif, memungkinkan jarak jauh mengeksekusi kode dengan hak istimewa (CVE-2019-15846).

Kerentanan

Kerentanan muncul saat menggunakan pustaka GnuTLS dan OpenSSL saat membuat koneksi TLS yang aman.

Menurut pengembang Heiko Schlittermann, file konfigurasi di Exim tidak menggunakan TLS secara default, tetapi banyak distribusi membuat sertifikat yang diperlukan selama instalasi dan mengaktifkan koneksi aman. Juga versi Exim yang lebih baru menginstal opsi tersebut tls_advertise_hosts=* dan menghasilkan sertifikat yang diperlukan.

tergantung pada konfigurasinya. Sebagian besar distro mengaktifkannya secara default, tetapi Exim memerlukan sertifikat+kunci untuk berfungsi sebagai server TLS. Mungkin Distro membuat Sertifikat selama penyiapan. Exim yang lebih baru memiliki opsi tls_advertise_hosts yang defaultnya adalah "*" dan membuat sertifikat yang ditandatangani sendiri, jika tidak ada yang disediakan.

Kerentanannya sendiri terletak pada kesalahan pemrosesan SNI (Server Name Indication, sebuah teknologi yang diperkenalkan pada tahun 2003 di RFC 3546 agar klien dapat meminta sertifikat yang benar untuk nama domain, Distribusi standar TLS SNI / WEBO Group Blog / Sudo Null IT News) selama jabat tangan TLS. Penyerang hanya perlu mengirimkan SNI yang diakhiri dengan garis miring terbalik ("") dan karakter null (" ").

Peneliti dari Qualys telah menemukan bug dalam fungsi string_printing(tls_in.sni), yang menyebabkan kesalahan pelolosan “”. Akibatnya, garis miring terbalik ditulis tanpa lolos ke file header spool cetak. File ini kemudian dibaca dengan hak istimewa oleh fungsi spool_read_header(), yang menyebabkan heap overflow.

Perlu dicatat bahwa saat ini, pengembang Exim telah menciptakan PoC kerentanan dengan pelaksanaan perintah pada server rentan jarak jauh, namun belum tersedia untuk umum. Karena kemudahan eksploitasi bug tersebut, hanya masalah waktu saja dan cukup singkat.

Sebuah studi yang lebih rinci oleh Qualys dapat ditemukan di sini.

Patched Exim - menambal lagi. Eksekusi Perintah Jarak Jauh Baru di Exim 4.92 dalam satu permintaan

Menggunakan SNI di TLS

Jumlah server publik yang berpotensi rentan

Menurut statistik dari penyedia hosting besar E-Soft Inc mulai 1 September, di server sewaan, versi 4.92 digunakan di lebih dari 70% host.

Versi
Jumlah Server
Persen

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%

Versi lain
25568
5.04%

Statistik perusahaan E-Soft Inc

Jika Anda menggunakan mesin pencari Shodan, lalu dari 5,250,000 di database server:

  • sekitar 3,500,000 menggunakan Exim 4.92 (sekitar 1,380,000 menggunakan SSL/TLS);
  • lebih dari 74,000 menggunakan 4.92.1 (sekitar 25,000 menggunakan SSL/TLS).

Dengan demikian, jumlah server Exim yang berpotensi rentan diketahui publik dan dapat diakses 1.5M.

Patched Exim - menambal lagi. Eksekusi Perintah Jarak Jauh Baru di Exim 4.92 dalam satu permintaan

Cari server Exim di Shodan

perlindungan

  • Opsi paling sederhana, namun tidak disarankan, adalah tidak menggunakan TLS, yang akan mengakibatkan pesan email diteruskan dengan jelas.
  • Untuk menghindari eksploitasi kerentanan, akan lebih baik jika memperbarui ke versi tersebut Exim Internet Mailer 4.92.2.
  • Jika tidak mungkin memperbarui atau menginstal versi yang dipatch, Anda dapat mengatur ACL di konfigurasi Exim untuk opsi tersebut acl_smtp_mail dengan aturan berikut:
    # 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}}}}

Sumber: www.habr.com

Tambah komentar