Vulnerabilitet kritik në Exim, i lejon ekzekutimin e kodit në server me të drejtat e rootit.

Në serverin e postës Exim u identifikua kritike vulnerabiliteti (CVE-2019-10149), e cila mund të çojë në ekzekutimin e kodit në distancë në server me të drejtat root gjatë përpunimit të një kërkese të strukturuar posaçërisht. Mundësia e shfrytëzimit të çështjes është vënë re në versionet nga 4.87 deri në 4.91 përfshire ose gjatë ndërtimit me opsionin EXPERIMENTAL_EVENT.

Në konfigurimin e paracaktuar, sulmi mund të kryhet pa komplikime të panevojshme nga një përdorues lokal, pasi aplikohet ACL 'verify = recipient', që kryen kontrolle shtesë për adresat e jashtme. Kryerja e një sulmi në distancë është e mundur duke ndryshuar cilësimet, për shembull, kur punon si MX i dytë për një domain tjetër, duke hequr ACL 'verify = recipient' ose duke bërë disa ndryshime në local_part_suffix). Një sulm në distancë gjithashtu është i mundur nëse sulmuesi mund të mbajë lidhjen me serverin të hapur për 7 ditë (për shembull, duke dërguar një bajt në minutë për të anashkaluar ndërprerjen nga koha e pritjes). Nuk përjashtohet që për shfrytëzimin e problemeve në distancë të ekzistojnë edhe vektorë sulmi më të thjeshtë.

Vulnerabiliteti shkaktohet nga kontrolli i pasaktë i adresës së marrësit në funksionin deliver_message(), e cila përcaktohet në skedarin /src/deliver.c. Nëpërmjet manipulimit të formatimit të adresës, sulmuesi mund të arrijë t'i futë të dhënat e tij në argumentet e komandës që thirret përmes funksionit execv() me të drejtat root. Për shfrytëzimin e tij nuk kërkohet përdorimi i teknikave komplekse, të përdorura gjatë mbushjes së buffer-ave ose dëmton memorjen, mjafton thjesht të futen simbole.

Çështja Ă«shtĂ« e lidhur me aplikimin pĂ«r konvertimin e adresave tĂ« ndĂ«rtimit:

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

Funksioni expand_string() Ă«shtĂ« njĂ« kombinuar i ekzagjeruar, i cili, pĂ«rfshin edhe ndarjen e komandĂ«s '${run{komanda argumente}', e cila çon nĂ« ekzekutimin e njĂ« trajtuesi tĂ« jashtĂ«m. KĂ«shtu, pĂ«r tĂ« sulmuar brenda seancĂ«s SMTP, njĂ« pĂ«rdorues lokal mjafton tĂ« dĂ«rgojĂ« njĂ« komandĂ« nĂ« stilin ‘RCPT TO “username+${run{
}}@localhost”‘, ku localhost Ă«shtĂ« njĂ« nga hostet nĂ« listĂ«n e local_domains, dhe username Ă«shtĂ« emri i njĂ« pĂ«rdoruesi lokal ekzistues.

NĂ«se serveri punon si njĂ« relay postash, mjafton tĂ« dĂ«rgohet njĂ« komandĂ« tĂ« largĂ«t ‘RCPT TO “${run{
}}@relaydomain.com”‘, ku relaydomain.com Ă«shtĂ« njĂ« nga hostet e renditur nĂ« seksionin e konfigurimit relay_to_domains. Duke qenĂ« se nĂ« parazgjedhje nĂ« exim nuk aplikohet njĂ« mod tĂ« heqjes sĂ« privilegjeve (deliver_drop_privilege = false), komandat e dĂ«rguara pĂ«rmes '${run{
}}' do tĂ« ekzekutohen me tĂ« drejtat root.

ËshtĂ« e rĂ«ndĂ«sishme tĂ« theksohet se vulnerabiliteti u i eliminuar nĂ« versionin e dalĂ« nĂ« shkurt 4.92 pa theks tĂ« veçantĂ« se riparimi mund tĂ« çojĂ« nĂ« probleme tĂ« sigurise. Nuk ka arsye pĂ«r tĂ« besuar se ka pasur mbulime tĂ« qĂ«llimshme tĂ« vulnerabilitetit nga zhvilluesit e Exim, pasi çështja u zgjidh gjatĂ« korrigjimeve dĂ«shtimit, qĂ« ndodhi kur dĂ«rgoheshin adresat e pasakta, dhe vulnerabiliteti u identifikua nga kompania Qualys gjatĂ« auditimit tĂ« ndryshimeve nĂ« Exim.

Riparimi për versionet e kaluara, të cilat vazhdojnë të aplikohen në shpërndarje, është në dispozicion vetëm në formën patch. Lëshimet korrigjuese për degët e kaluara me zgjidhjen e problemit janë planifikuar për 11 qershor. Përditësimet e paketave janë përgatitur për Debian, Ubuntu, openSUSE. Arch Linux dhe Fedora ofrojnë versionin 4.92, ku problemi nuk shfaqet. RHEL dhe CentOS kanë probleme nuk janë të ekspozuara, pasi Exim nuk është pjesë e depozitave të pakove të tyre.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster