Athari kubwa katika Exim inayoruhusu msimbo kutekelezwa kwenye seva na upendeleo wa mizizi.

Katika seva ya barua ya Exim kutambuliwa muhimu kuathirika (CVE-2019-10149), ambayo inaweza kusababisha utekelezaji wa msimbo wa mbali kwenye seva na haki za mizizi wakati wa kuchakata ombi iliyoundwa mahsusi. Uwezekano wa matumizi ya tatizo ulibainishwa katika matoleo kutoka 4.87 hadi 4.91 pamoja au wakati wa kujenga kwa chaguo la EXPERIMENTAL_EVENT.

Katika usanidi wa kawaida, shambulio linaweza kufanywa bila matatizo yasiyo ya lazima na mtumiaji wa ndani, kwani "thibitisha = mpokeaji" ACL inatumiwa, ambayo hufanya ukaguzi wa ziada kwa anwani za nje. Shambulio la mbali linaweza kutokea wakati mipangilio inabadilishwa, kama vile kufanya kama MX ya pili kwa kikoa kingine, kuondoa ACL ya "thibitisha=mpokeaji", au mabadiliko fulani kwa local_part_suffix). Shambulio la mbali pia linawezekana ikiwa mshambuliaji anaweza kuweka muunganisho kwenye seva wazi kwa siku 7 (kwa mfano, kutuma byte moja kwa dakika ili kupitisha muda). Wakati huo huo, inawezekana kwamba kuna vectors rahisi za mashambulizi kwa unyonyaji wa kijijini wa tatizo.

Athari hii inasababishwa na uthibitishaji usio sahihi wa anwani ya mpokeaji katika kitendakazi cha deliver_message() kilichobainishwa katika faili ya /src/deliver.c. Kwa kubadilisha umbizo la anwani, mshambulizi anaweza kufikia ubadilishanaji wa data yake katika hoja za amri inayoitwa kupitia execv() chaguo la kukokotoa na haki za mizizi. Uendeshaji hauhitaji matumizi ya mbinu changamano zinazotumika kwa ajili ya kufurika kwa bafa au ubadilishanaji wa herufi rahisi unatosha.

Shida inahusiana na utumiaji wa muundo kwa ubadilishaji wa anwani:

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

Utendakazi wa expand_string() ni kiunganishi kilicho ngumu kupita kiasi, ikijumuisha kutambua amri "${run{command arguments}", ambayo husababisha kuzinduliwa kwa kidhibiti cha nje. Kwa hivyo, ili kushambulia ndani ya kipindi cha SMTP, mtumiaji wa ndani anahitaji tu kutuma amri kama 'RCPT TO "username+${run{...}}@localhost"', ambapo localhost ni mojawapo ya wapangishi kutoka kwenye orodha ya local_domains, na jina la mtumiaji ni jina la mtumiaji aliyepo wa ndani.

Ikiwa seva inafanya kazi kama upeanaji barua, inatosha kutuma amri ya 'RCPT TO "${run{...}}@relaydomain.com"', ambapo relaydomain.com ni mojawapo ya seva pangishi zilizoorodheshwa katika vikoa vya relay_to_. sehemu ya mipangilio. Kwa kuwa Exim si chaguomsingi kuacha hali ya upendeleo (deliver_drop_privilege = false), amri zinazopitishwa kupitia "${run{...}}" zitatekelezwa kama mzizi.

Ni vyema kutambua kwamba mazingira magumu yalikuwa kuondolewa katika toleo la 4.92 lililotolewa Februari, bila kusisitiza kuwa kurekebisha kunaweza kusababisha matatizo ya usalama. Hakuna sababu ya kuamini kwamba kulikuwa na ufichaji wa kimakusudi wa udhaifu na wasanidi wa Exim, kwa kuwa tatizo lilirekebishwa wakati. marekebisho kushindwa kunakotokea wakati anwani zisizo sahihi zinapotumwa, na uwezekano wa kuathirika ulitambuliwa na Qualys wakati wa ukaguzi wa mabadiliko katika Exim.

Marekebisho ya matoleo ya awali ambayo yanaendelea kutumika katika usambazaji yanapatikana tu kama kiraka. Matoleo ya kurekebisha kwa matawi yaliyotangulia ili kurekebisha tatizo yamepangwa Juni 11. Masasisho ya kifurushi yako tayari Debian, Ubuntu, Fungua. Arch Linux ΠΈ Fedora Wanatoa toleo la 4.92, ambalo tatizo halionekani. Tatizo la RHEL na CentOS si rahisi kuathiriwa, kwa kuwa Exim haijajumuishwa kwenye hazina yao ya kawaida ya kifurushi.

Chanzo: opennet.ru

Kuongeza maoni