Butiran kelemahan kritikal dalam Exim didedahkan

diterbitkan pelepasan pembetulan Exim 4.92.2 dengan penghapusan kritikal kelemahan (CVE-2019 15846-), yang dalam konfigurasi lalai boleh membawa kepada pelaksanaan kod jauh oleh penyerang dengan keistimewaan root. Masalah hanya muncul apabila sokongan TLS didayakan dan dieksploitasi dengan menghantar sijil pelanggan yang direka khas atau nilai yang diubah suai kepada SNI. Keterdedahan dikenalpasti oleh Qualys.

masalah hadir dalam pengendali untuk melarikan diri aksara khas dalam rentetan (string_interpret_escape() daripada string.c) dan disebabkan oleh aksara '\' di hujung rentetan yang ditafsirkan sebelum aksara nol ('\0') dan melepaskannya. Apabila melarikan diri, jujukan '\' dan kod akhir baris nol berikut dianggap sebagai aksara tunggal dan penuding dialihkan kepada data di luar baris, yang dianggap sebagai kesinambungan baris.

Kod memanggil string_interpret_escape() memperuntukkan penimbal untuk longkang berdasarkan saiz sebenar, dan penuding terdedah berakhir di kawasan di luar sempadan penimbal. Sehubungan itu, apabila cuba memproses rentetan input, situasi timbul apabila membaca data dari kawasan di luar sempadan penimbal yang diperuntukkan, dan percubaan untuk menulis rentetan yang tidak dilepaskan boleh membawa kepada penulisan di luar sempadan penimbal.

Dalam konfigurasi lalai, kelemahan boleh dieksploitasi dengan menghantar data yang direka khas kepada SNI apabila mewujudkan sambungan selamat ke pelayan. Isu ini juga boleh dieksploitasi dengan mengubah suai nilai perdn dalam konfigurasi yang dikonfigurasikan untuk pengesahan sijil pelanggan atau semasa mengimport sijil. Serangan melalui SNI dan perdn mungkin bermula dari pelepasan Exim 4.80, di mana fungsi string_unprinting() digunakan untuk menyahcetak kandungan peern dan SNI.

Prototaip eksploitasi telah disediakan untuk serangan melalui SNI, berjalan pada seni bina i386 dan amd64 pada sistem Linux dengan Glibc. Eksploit menggunakan tindanan data pada kawasan timbunan, mengakibatkan menimpa memori di mana nama fail log disimpan. Nama fail digantikan dengan "/../../../../../../../../etc/passwd". Seterusnya, pembolehubah dengan alamat pengirim ditimpa, yang pertama kali disimpan dalam log, yang membolehkan anda menambah pengguna baharu pada sistem.

Kemas kini pakej dengan pembetulan kerentanan yang dikeluarkan oleh pengedaran Debian, Ubuntu, Fedora, SUSE/openSUSE ΠΈ FreeBSD. Masalah RHEL dan CentOS tidak terdedah, kerana Exim tidak termasuk dalam repositori pakej biasa mereka (dalam HANGAT ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ sudah terbentuk, tetapi buat masa ini tidak diletakkan ke repositori awam). Dalam kod Exim masalahnya telah dibetulkan dengan satu pelapik tampalan, yang melumpuhkan kesan melarikan diri daripada garis miring ke belakang jika ia berada di hujung baris.

Sebagai penyelesaian untuk menyekat kelemahan, anda boleh melumpuhkan sokongan TLS atau menambah
Bahagian ACL "acl_smtp_mail":

tolak syarat = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
tolak syarat = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Sumber: opennet.ru

Tambah komen