Dina server mail Exim
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
Perbaikan pikeun vérsi saméméhna anu terus dianggo dina distribusi ayeuna ngan sayogi salaku
sumber: opennet.ru