Katika seva ya barua ya Exim
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
Marekebisho ya matoleo ya awali ambayo yanaendelea kutumika katika usambazaji yanapatikana tu kama
Chanzo: opennet.ru