Patched Exim - patch maneh. Eksekusi Command Remote Fresh ing Exim 4.92 ing siji panyuwunan

Patched Exim - patch maneh. Eksekusi Command Remote Fresh ing Exim 4.92 ing siji panyuwunan

Paling anyar, ing awal musim panas, ana telpon sing nyebar supaya Exim dianyari menyang versi 4.92 amarga kerentanan CVE-2019-10149 (Nganyari Exim kanthi cepet dadi 4.92 - ana infeksi aktif / Sudo Null IT News). Lan bubar ternyata malware Sustes mutusake kanggo njupuk kauntungan saka kerentanan iki.

Saiki kabeh wong sing nganyari kanthi cepet bisa "bungah" maneh: tanggal 21 Juli 2019, peneliti Zerons nemokake kerentanan kritis ing Exim Mail Transfer agent (MTA) nalika nggunakake TLS kanggo versi saka 4.80 4.92.1 munggah klebu, ngidini remot nglakokake kode kanthi hak istimewa (CVE-2019-15846).

Kerentanan

Kerentanan kasebut ana nalika nggunakake perpustakaan GnuTLS lan OpenSSL nalika nggawe sambungan TLS sing aman.

Miturut pangembang Heiko Schlittermann, file konfigurasi ing Exim ora nggunakake TLS kanthi standar, nanging akeh distribusi nggawe sertifikat sing dibutuhake sajrone instalasi lan ngaktifake sambungan sing aman. Uga versi anyar saka Exim nginstal pilihan tls_advertise_hosts=* lan ngasilake sertifikat sing dibutuhake.

gumantung ing konfigurasi. Umume distro ngaktifake kanthi gawan, nanging Exim butuh sertifikat+kunci supaya bisa dadi server TLS. Mbokmenawa Distros nggawe Cert sajrone persiyapan. Exims sing luwih anyar duwe pilihan tls_advertise_hosts kanthi default "*" lan nggawe sertifikat sing ditandatangani dhewe, yen ora ana.

Kerentanan kasebut dhewe dumunung ing pangolahan SNI (Server Name Indikasi, teknologi sing dikenalake ing 2003 ing RFC 3546 kanggo klien njaluk sertifikat sing bener kanggo jeneng domain, Distribusi standar TLS SNI / WEBO Group Blog / Sudo Null IT News) sajrone jabat tangan TLS. Penyerang mung kudu ngirim SNI sing diakhiri karo garis miring terbalik ("") lan karakter null (" ").

Peneliti saka Qualys wis nemokake bug ing fungsi string_printing(tls_in.sni), sing kalebu salah uwal saka "". Akibaté, backslash ditulis unescaped menyang print spool file header. Berkas iki banjur diwaca kanthi hak istimewa dening fungsi spool_read_header (), sing ndadékaké kebanjiran tumpukan.

Wigati dicathet yen saiki, pangembang Exim wis nggawe PoC kerentanan kanthi eksekusi perintah ing server sing rawan remot, nanging durung kasedhiya kanggo umum. Amarga gampang eksploitasi bug, iku mung masalah wektu, lan cukup cendhak.

Sinau luwih rinci dening Qualys bisa ditemokake kene.

Patched Exim - patch maneh. Eksekusi Command Remote Fresh ing Exim 4.92 ing siji panyuwunan

Nggunakake SNI ing TLS

Jumlah server umum sing bisa rawan

Miturut statistik saka panyedhiya hosting gedhe E-Soft Inc wiwit 1 September, ing server sing disewakake, versi 4.92 digunakake ing luwih saka 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 liyane
25568
5.04%

E-Soft Inc. statistik perusahaan

Yen sampeyan nggunakake mesin telusur shodan, banjur metu saka 5,250,000 ing database server:

  • bab 3,500,000 nggunakake Exim 4.92 (bab 1,380,000 nggunakake SSL / TLS);
  • liwat 74,000 nggunakake 4.92.1 (bab 25,000 nggunakake SSL / TLS).

Mangkono, umum dikenal lan diakses Exim potensial ngrugekke server nomer babagan 1.5M.

Patched Exim - patch maneh. Eksekusi Command Remote Fresh ing Exim 4.92 ing siji panyuwunan

Telusuri server Exim ing Shodan

pangayoman

  • Pilihan sing paling gampang, nanging ora dianjurake, yaiku ora nggunakake TLS, sing bakal nyebabake pesen email diterusake kanthi jelas.
  • Kanggo ngindhari eksploitasi kerentanan, luwih becik nganyari versi kasebut Exim Internet Mailer 4.92.2.
  • Yen ora bisa nganyari utawa nginstal versi patched, sampeyan bisa nyetel ACL ing konfigurasi Exim kanggo pilihan. acl_smtp_mail kanthi aturan ing ngisor iki:
    # 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}}}}

Source: www.habr.com