Í Exim póstþjóni
Í sjálfgefna stillingu er hægt að framkvæma árásina án óþarfa fylgikvilla af staðbundnum notanda, þar sem „staðfesta = viðtakandi“ ACL er notað, sem framkvæmir viðbótareftirlit fyrir ytri vistföng. Fjarárás getur átt sér stað þegar stillingum er breytt, eins og að starfa sem auka-MX fyrir annað lén, fjarlægja „verify=recipient“ ACL eða ákveðnar breytingar á local_part_suffix). Fjarárás er einnig möguleg ef árásarmaðurinn getur haldið tengingunni við netþjóninn opinni í 7 daga (td sent eitt bæti á mínútu til að komast framhjá tímamörkum). Á sama tíma er mögulegt að til séu einfaldari árásarvektorar fyrir fjarnýtingu á vandamálinu.
Varnarleysið stafar af rangri staðfestingu á heimilisfangi viðtakanda í aðgerðinni delivery_message() sem er skilgreint í /src/deliver.c skránni. Með því að hagræða heimilisfangasniðinu getur árásarmaður náð að skipta gögnum sínum út í rök skipunar sem kallað er í gegnum execv() aðgerðina með rótarréttindum. Rekstur krefst ekki notkunar flókinnar tækni sem notuð er til að flæða yfir biðminni eða minnisspillingu; einföld stafiskipti er nóg.
Vandamálið tengist notkun smíðinnar til að breyta heimilisfangi:
delivery_localpart = expand_string(
string_sprintf("${local_part:%s}", new->address));
skila_lén = útvíkka_streng(
string_sprintf("${lén:%s}", new->address));
Expand_string() fallið er of flókið samsetningartæki, þar á meðal að þekkja skipunina „${run{command arguments}“, sem leiðir til þess að utanaðkomandi meðhöndlari er ræstur. Þannig, til að ráðast á innan SMTP lotu, þarf staðbundinn notandi aðeins að senda skipun eins og 'RCPT TO "username+${run{...}}@localhost"', þar sem localhost er einn af gestgjöfunum af local_domains listanum, og notendanafn er nafn núverandi staðbundins notanda.
Ef þjónninn virkar sem póstsending er nóg að senda skipunina 'RCPT TO "${run{...}}@relaydomain.com"', þar sem relaydomain.com er einn af hýsingunum sem eru skráðir í relay_to_domains stillingarhluta. Þar sem Exim er ekki sjálfgefið að sleppa forréttindastillingu (deliver_drop_privilege = false), verða skipanir sem sendar eru með „${run{...}}“ keyrðar sem rót.
Það er athyglisvert að varnarleysið var
Lagfæring fyrir fyrri útgáfur sem eru áfram notaðar í dreifingu er sem stendur aðeins fáanleg sem
Heimild: opennet.ru