Kerentanan kritis ing Exim sing ngidini kode dieksekusi ing server kanthi hak istimewa root

Ing server mail Exim dikenali kriтичСская kerentanan (CVE-2019-10149), sing bisa nyebabake eksekusi kode remot ing server kanthi hak root nalika ngolah panjaluk sing digawe khusus. Kemungkinan eksploitasi masalah kasebut kacathet ing versi 4.87 nganti 4.91 kalebu utawa nalika mbangun kanthi pilihan EXPERIMENTAL_EVENT.

Ing konfigurasi standar, serangan bisa ditindakake tanpa komplikasi sing ora perlu dening pangguna lokal, amarga ACL "verifikasi = panampa" ditrapake, sing nindakake pemeriksaan tambahan kanggo alamat eksternal. Serangan remot bisa kedadeyan nalika setelan diganti, kayata tumindak minangka MX sekunder kanggo domain liyane, mbusak "verifikasi = panampa" ACL, utawa owah-owahan tartamtu menyang local_part_suffix). Serangan remot uga bisa ditindakake yen panyerang bisa njaga sambungan menyang server sajrone 7 dina (contone, ngirim siji bait saben menit kanggo ngliwati wektu entek). Ing wektu sing padha, bisa uga ana vektor serangan sing luwih gampang kanggo eksploitasi remot saka masalah kasebut.

Kerentanan disebabake verifikasi salah alamat panampa ing fungsi deliver_message () ditetepake ing file /src/deliver.c. Kanthi manipulasi format alamat, panyerang bisa entuk substitusi data menyang argumen perintah sing diarani liwat fungsi execv () kanthi hak root. Operasi ora mbutuhake teknik rumit sing digunakake kanggo overflows buffer utawa korupsi memori; substitusi karakter sing prasaja cukup.

Masalah kasebut ana gandhengane karo panggunaan konstruk kanggo konversi alamat:

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

Expand_string () fungsi minangka combiner overcomplicated, kalebu pangling printah "${run{command arguments}", kang ndadΓ©kakΓ© kanggo Bukak saka handler external. Dadi, kanggo nyerang ing sesi SMTP, pangguna lokal mung kudu ngirim prentah kaya 'RCPT TO "username+${run{...}}@localhost"', ing ngendi localhost minangka salah sawijining host saka dhaptar local_domains, lan jeneng panganggo iku jeneng pangguna lokal sing wis ana.

Yen server dianggo minangka relay mail, cukup kanggo ngirim perintah 'RCPT menyang "${run{...}}@relaydomain.com" saka jarak jauh, ing ngendi relaydomain.com minangka salah sawijining host sing kadhaptar ing relay_to_domains bagean setelan. Wiwit Exim ora standar kanggo nyelehake mode hak istimewa (deliver_drop_privilege = palsu), printah liwati liwat "${run{...}}" bakal kaleksanan minangka root.

Wigati dimangerteni manawa kerentanan kasebut diilangi ing 4.92 release dirilis ing Februari, tanpa nandheske sing fix bisa mimpin kanggo masalah keamanan. Ora ana alesan kanggo percaya yen ana ndhelikake kerentanan sing disengaja dening pangembang Exim, amarga masalah kasebut diatasi sajrone koreksi Gagal sing dumadi nalika alamat sing salah ditularake, lan kerentanan kasebut diidentifikasi dening Qualys sajrone audit owah-owahan ing Exim.

Ndandani versi sadurunge sing terus digunakake ing distribusi saiki mung kasedhiya minangka tembelan. Rilis korektif kanggo cabang sadurunge kanggo ndandani masalah dijadwalake tanggal 11 Juni. nganyari paket siap kanggo Debian, ubuntu, openSUSE. Linux Arch ΠΈ Fedora Dheweke nyedhiyakake versi 4.92, sing masalah kasebut ora katon. Masalah RHEL lan CentOS ora rentan, amarga Exim ora kalebu ing repositori paket reguler.

Source: opennet.ru

Add a comment