In Exim-posbediener
In die verstekkonfigurasie kan die aanval sonder onnodige komplikasies deur 'n plaaslike gebruiker uitgevoer word, aangesien die "verifieer = ontvanger" ACL toegepas word, wat addisionele kontroles vir eksterne adresse uitvoer. 'n Afgeleë aanval kan plaasvind wanneer instellings verander word, soos om as 'n sekondêre MX vir 'n ander domein op te tree, die verwydering van die "verify=recipient" ACL, of sekere veranderinge aan local_part_suffix). 'n Afgeleë aanval is ook moontlik as die aanvaller in staat is om die verbinding met die bediener oop te hou vir 7 dae (byvoorbeeld deur een greep per minuut te stuur om 'n uitteltyd te omseil). Terselfdertyd is dit moontlik dat daar eenvoudiger aanvalsvektore is vir afstandontginning van die probleem.
Die kwesbaarheid word veroorsaak deur verkeerde verifikasie van die ontvanger se adres in die delivery_message()-funksie wat in die /src/deliver.c-lêer gedefinieer is. Deur die adresformatering te manipuleer, kan 'n aanvaller die vervanging van sy data in die argumente van 'n opdrag bewerkstellig wat deur die execv()-funksie met wortelregte geroep word. Operasie vereis nie die gebruik van komplekse tegnieke wat gebruik word vir bufferoorvloei of geheuekorrupsie nie; eenvoudige karaktervervanging is voldoende.
Die probleem hou verband met die gebruik van die konstruk vir adresomskakeling:
lewer_plaaslike deel = expand_string(
string_sprintf("${local_part:%s}", new->adres));
lewer_domein = brei_string(
string_sprintf("${domein:%s}", nuwe->adres));
Die expand_string() funksie is 'n oorgekompliseerde kombinasie, insluitend die herkenning van die opdrag "${run{command arguments}", wat lei tot die bekendstelling van 'n eksterne hanteerder. Om dus binne 'n SMTP-sessie aan te val, hoef 'n plaaslike gebruiker slegs 'n opdrag soos 'RCPT TO "gebruikersnaam+${run{...}}@localhost"' te stuur, waar localhost een van die gashere van die local_domains lys is, en gebruikersnaam is die naam van 'n bestaande plaaslike gebruiker.
As die bediener as 'n posaflos werk, is dit genoeg om die opdrag 'RCPT NA "${run{...}}@relaydomain.com"' te stuur, waar relaydomain.com een van die gashere is wat in die relay_to_domains gelys is instellings afdeling. Aangesien Exim nie verstek om die privilegiemodus te laat val nie (deliver_drop_privilege = false), sal opdragte wat deur "${run{...}}" gestuur word as wortel uitgevoer word.
Dit is opmerklik dat die kwesbaarheid was
'n Regstelling vir vorige weergawes wat steeds in verspreidings gebruik word, is tans slegs beskikbaar as
Bron: opennet.ru