Gipadayag ang Kritikal nga Pagkahuyang sa Exim

gipatik corrective nga pagpagawas Exim 4.92.2 uban ang pagwagtang sa kritikal mga kahuyang (CVE-2019-15846), nga sa default configuration mahimong mosangpot sa remote code execution sa usa ka attacker nga adunay root privileges. Ang problema makita ra kung ang suporta sa TLS gipagana ug gipahimuslan pinaagi sa pagpasa sa usa ka espesyal nga gidisenyo nga sertipiko sa kliyente o giusab nga kantidad sa SNI. Pagkahuyang giila ni Qualys.

problema karon sa handler para sa pag-eskapo sa mga espesyal nga karakter sa hilo (string_interpret_escape() gikan sa string.c) ug tungod sa '\' nga karakter sa katapusan sa hilo nga gihubad sa wala pa ang null nga karakter ('\ 0') ug pag-eskapo niini. Sa pag-eskapo, ang han-ay nga '\' ug ang mosunod nga null end-of-line code isipon isip usa ka karakter ug ang pointer ibalhin ngadto sa datos sa gawas sa linya, nga gitratar isip usa ka pagpadayon sa linya.

Ang code nga nagtawag sa string_interpret_escape() naggahin ug buffer para sa drain base sa aktuwal nga gidak-on, ug ang gibutyag nga pointer moabot sa usa ka lugar gawas sa mga utlanan sa buffer. Tungod niini, sa pagsulay sa pagproseso sa usa ka input string, ang usa ka sitwasyon motungha sa diha nga ang pagbasa sa data gikan sa usa ka lugar sa gawas sa mga utlanan sa gigahin buffer, ug ang usa ka pagsulay sa pagsulat sa usa ka unescaped string mahimong mosangpot sa pagsulat lapas sa mga utlanan sa buffer.

Sa default configuration, ang vulnerability mahimong mapahimuslan pinaagi sa pagpadala sa espesyal nga gidisenyo nga datos ngadto sa SNI sa dihang magtukod og luwas nga koneksyon sa server. Ang isyu mahimo usab nga mapahimuslan pinaagi sa pagbag-o sa mga kantidad sa perdn sa mga pag-configure nga gi-configure alang sa pag-authenticate sa sertipiko sa kliyente o kung nag-import og mga sertipiko. Ang pag-atake pinaagi sa SNI ug perdn posible sugod sa pagpagawas Exim 4.80, diin ang string_unprinting() function gigamit sa pag-unprint sa perdn ug SNI contents.

Giandam ang usa ka prototype sa pagpahimulos alang sa usa ka pag-atake pinaagi sa SNI, nga nagdagan sa i386 ug amd64 nga mga arkitektura sa mga sistema sa Linux nga adunay Glibc. Ang pagpahimulos naggamit sa data overlay sa heap area, nga miresulta sa pag-overwrit sa memorya diin ang log file name gitipigan. Ang ngalan sa file gipulihan ug "/../../../../../../../../etc/passwd". Sunod, ang variable nga adunay adres sa nagpadala gi-overwrit, nga una nga gitipig sa log, nga nagtugot kanimo sa pagdugang usa ka bag-ong tiggamit sa sistema.

Ang mga update sa package nga adunay mga pag-ayo sa pagkahuyang nga gipagawas sa mga distribusyon Debian, Ubuntu, Fedora, SUSE/openSUSE ΠΈ FreeBSD. Problema sa RHEL ug CentOS dili delikado, tungod kay ang Exim wala gilakip sa ilang regular nga repository sa pakete (sa EPEL update na naporma, pero sa pagkakaron wala gibutang ngadto sa publikong repositoryo). Sa Exim code ang problema giayo sa usa ka liner patch, nga nagpugong sa pag-eskapo nga epekto sa backslash kung kini anaa sa katapusan sa linya.

Ingon usa ka solusyon aron mapugngan ang pagkahuyang, mahimo nimong i-disable ang suporta sa TLS o idugang
ACL nga seksyon "acl_smtp_mail":

deny condition = ${kon eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
deny condition = ${kon eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Source: opennet.ru

Idugang sa usa ka comment