Kerentanan kritis dina Exim anu ngamungkinkeun kode dieksekusi dina server anu gaduh hak husus root

Dina server mail Exim dicirikeun kritis karentanan (CVE-2019-10149), anu tiasa nyababkeun palaksanaan kode jauh dina server kalayan hak akar nalika ngolah pamundut anu didamel khusus. Kamungkinan eksploitasi masalah kacatet dina versi ti 4.87 ka 4.91 inklusif atanapi nalika ngawangun sareng pilihan EXPERIMENTAL_EVENT.

Dina konfigurasi standar, serangan tiasa dilaksanakeun tanpa komplikasi anu teu perlu ku pangguna lokal, sabab "verifikasi = panarima" ACL diterapkeun, anu ngalaksanakeun pamariksaan tambahan pikeun alamat éksternal. Serangan jarak jauh tiasa lumangsung nalika setélan dirobah, sapertos akting salaku MX sekundér pikeun domain sanés, ngahapus "verifikasi = panarima" ACL, atanapi parobihan anu tangtu kana local_part_suffix). Serangan jarak jauh ogé mungkin upami panyerang tiasa ngajaga sambungan ka server kabuka salami 7 dinten (contona, ngirim hiji bait per menit pikeun ngaliwat waktos waktos). Dina waktos anu sami, mungkin waé aya vektor serangan anu langkung saderhana pikeun eksploitasi jarak jauh tina masalah.

Kerentanan disababkeun ku verifikasi salah sahiji alamat panarima dina fungsi deliver_message () diartikeun dina file /src/deliver.c. Ku manipulasi pormat alamat, panyerang bisa ngahontal substitusi data na kana argumen paréntah disebut ngaliwatan execv () fungsi kalawan hak root. Operasi teu merlukeun pamakéan téhnik kompléks dipaké pikeun overflows panyangga atawa korupsi memori; substitusi karakter basajan cukup.

Masalahna aya hubunganana sareng panggunaan konstruksi pikeun konversi alamat:

deliver_localpart = expand_string(
string_sprintf("${local_part:%s}", new->alamat));
deliver_domain = expand_string(
string_sprintf("${domain:%s}", anyar->alamat));

The expand_string () fungsi mangrupa combiner overcomplicated, kaasup recognizing paréntah "${run {komando argumen}", nu ngabalukarkeun peluncuran hiji Handler éksternal. Janten, pikeun nyerang dina sési SMTP, pangguna lokal ngan ukur kedah ngirim paréntah sapertos 'RCPT TO "username+${run{...}}@localhost"', dimana localhost mangrupikeun salah sahiji host tina daptar local_domains, sareng nami pangguna mangrupikeun nami pangguna lokal anu tos aya.

Upami server tiasa dianggo salaku relay surat, cukup pikeun ngirimkeun jarak jauh paréntah 'RCPT TO "${run{...}}@relaydomain.com"', dimana relaydomain.com mangrupikeun salah sahiji host anu didaptarkeun dina relay_to_domains bagian setélan. Kusabab Exim henteu standar kana modeu hak istimewa (deliver_drop_privilege = palsu), paréntah anu disalurkeun ku "${run{...}}" bakal dieksekusi salaku root.

Éta noteworthy yén kerentanan éta ngaleungitkeun dina release 4.92 dirilis dina bulan Pebruari, tanpa emphasizing nu fix bisa ngakibatkeun masalah kaamanan. Teu aya alesan pikeun yakin yén aya anu ngahaja nyumputkeun kerentanan ku pamekar Exim, sabab masalahna dibenerkeun nalika ngalereskeun gagalna anu lumangsung nalika alamat lepat dikirimkeun, sarta kerentanan ieu diidentipikasi ku Qualys salila hiji Inok parobahan dina Exim.

Perbaikan pikeun vérsi saméméhna anu terus dianggo dina distribusi ayeuna ngan sayogi salaku patch. Kaluaran corrective pikeun cabang saméméhna pikeun ngalereskeun masalah dijadwalkeun pikeun 11 Juni. apdet pakét geus siap pikeun Debian, Ubuntu, openSUSE. Arch Linux Ubuntu и Fedora Aranjeunna nyayogikeun versi 4.92, dimana masalahna henteu muncul. Masalah RHEL sareng CentOS teu rentan, Kusabab Exim teu kaasup dina Repository pakét biasa maranéhna.

sumber: opennet.ru

Tambahkeun komentar