Vilnerabilite kritik nan Exim ki pèmèt kòd yo dwe egzekite sou sèvè a ak privilèj rasin

Nan sèvè lapòs Exim idantifye kritik vilnerabilite (CVE-2019-10149), ki ka mennen nan ekzekisyon kòd aleka sou sèvè a ak dwa rasin lè w ap trete yon demann espesyalman fabrike. Posiblite pou eksplwatasyon pwoblèm nan te note nan vèsyon soti nan 4.87 a 4.91 enklizif oswa lè bati ak opsyon nan EXPERIMENTAL_EVENT.

Nan konfigirasyon default, atak la ka fèt san konplikasyon nesesè pa yon itilizatè lokal, depi "verify = moun k ap resevwa" ACL aplike, ki fè chèk adisyonèl pou adrès ekstèn. Yon atak aleka ka rive lè anviwònman yo chanje, tankou aji kòm yon MX segondè pou yon lòt domèn, retire "verify = destinataire" ACL, oswa sèten chanjman nan local_part_suffix). Yon atak aleka posib tou si atakè a kapab kenbe koneksyon an ak sèvè a louvri pou 7 jou (pa egzanp, voye yon byte pou chak minit pou kontoune yon tan). An menm tan an, li posib ke gen vektè atak ki pi senp pou eksplwatasyon aleka nan pwoblèm nan.

Se vilnerabilite ki te koze pa kòrèk verifikasyon adrès moun k ap resevwa a nan fonksyon deliver_message() ki defini nan dosye /src/deliver.c. Lè yo manipile fòma adrès la, yon atakè ka reyalize sibstitisyon done li yo nan agiman yon lòd ki rele nan fonksyon execv() ak dwa rasin. Operasyon pa mande pou itilize teknik konplèks yo itilize pou debòde tanpon oswa koripsyon memwa se sifizan.

Pwoblèm nan gen rapò ak itilizasyon konstriksyon an pou konvèsyon adrès:

deliver_localpart = expand_string(
string_sprintf ("${local_part:%s}", nouvo->adrès));
deliver_domain = expand_string(
string_sprintf ("${domain:%s}", nouvo->adrès));

Fonksyon expand_string() se yon konbinateur ki twò konplike, ki gen ladan rekonèt kòmandman "${run{kòmand agiman}", ki mennen nan lansman yon moun kap okipe ekstèn. Kidonk, pou atake nan yon sesyon SMTP, yon itilizatè lokal sèlman bezwen voye yon lòd tankou 'RCPT TO "username+${run{...}}@localhost"', kote localhost se youn nan lame ki soti nan lis lokal_domains, ak non itilizatè se non yon itilizatè lokal ki egziste deja.

Si sèvè a travay kòm yon relè lapòs, li ase pou voye kòmandman 'RCPT TO "${run{...}}@relaydomain.com"', kote relaydomain.com se youn nan lame yo ki nan lis relay_to_domains. seksyon anviwònman. Piske Exim pa defo pou abandone mòd privilèj (deliver_drop_privilege = fo), kòmandman yo pase atravè "${run{...}}" yo pral egzekite kòm rasin.

Se enpòtan pou remake ke vilnerabilite a te elimine nan lage 4.92 lage nan mwa fevriye, san yo pa mete aksan sou ke ranje a ta ka mennen nan pwoblèm sekirite. Pa gen okenn rezon pou kwè ke te gen yon kache fè espre vilnerabilite pa devlopè Exim yo, depi pwoblèm nan te fikse pandan ranje echèk ki rive lè yo transmèt adrès ki pa kòrèk, epi Qualys te idantifye vilnerabilite a pandan yon odit chanjman nan Exim.

Yon ranje pou vèsyon anvan yo ki kontinye ap itilize nan distribisyon yo disponib kounye a sèlman kòm plak. Degaje korektif pou branch anvan yo pou rezoud pwoblèm nan pwograme pou 11 jen. Mizajou pake yo pare pou dbyan, Ubentu, openSUSE. Arch Linux и Feutr Yo bay vèsyon 4.92, nan ki pwoblèm nan pa parèt. Pwoblèm RHEL ak CentOS pa sansib, depi Exim pa enkli nan depo pakè regilye yo.

Sous: opennet.ru

Add nouvo kòmantè