Në serverin e postës Exim
Në konfigurimin e paracaktuar, sulmi mund të kryhet pa komplikime të panevojshme nga një përdorues lokal, pasi aplikohet ACL "verify = marrës", i cili kryen kontrolle shtesë për adresat e jashtme. Një sulm në distancë mund të ndodhë kur ndryshohen cilësimet, si p.sh. të veprojë si një MX dytësor për një domen tjetër, duke hequr ACL "verify=recipient" ose disa ndryshime në prapashtesën local_part_). Një sulm në distancë është gjithashtu i mundur nëse sulmuesi është në gjendje ta mbajë të hapur lidhjen me serverin për 7 ditë (për shembull, dërgimi i një bajt në minutë për të anashkaluar një afat kohor). Në të njëjtën kohë, është e mundur që të ketë vektorë më të thjeshtë sulmi për shfrytëzimin në distancë të problemit.
Dobësia shkaktohet nga verifikimi i gabuar i adresës së marrësit në funksionin deliver_message() të përcaktuar në skedarin /src/deliver.c. Duke manipuluar formatimin e adresës, një sulmues mund të arrijë zëvendësimin e të dhënave të tij në argumentet e një komande të thirrur përmes funksionit execv() me të drejta rrënjësore. Operacioni nuk kërkon përdorimin e teknikave komplekse të përdorura për tejmbushjet e buferit ose prishjen e kujtesës; zëvendësimi i thjeshtë i karaktereve është i mjaftueshëm.
Problemi lidhet me përdorimin e konstruktit për konvertimin e adresës:
dorëzo_partin_lokal = zgjerim_string(
string_sprintf("${local_part:%s}", new->adresa));
domeni_dorëzimi = zgjerimi_string(
string_sprintf("${domain:%s}", new->adresa));
Funksioni expand_string() është një kombinues tepër i ndërlikuar, duke përfshirë njohjen e komandës "${run{command arguments}", e cila çon në lëshimin e një mbajtësi të jashtëm. Kështu, për të sulmuar brenda një sesioni SMTP, një përdorues lokal duhet vetëm të dërgojë një komandë si 'RCPT TE "username+${run{...}}@localhost"', ku localhost është një nga hostet nga lista local_domains. dhe emri i përdoruesit është emri i një përdoruesi ekzistues lokal.
Nëse serveri punon si një rele postare, mjafton të dërgoni në distancë komandën 'RCPT TE "${run{...}}@relaydomain.com", ku relaydomain.com është një nga hostet e listuar në relay_to_domains seksioni i cilësimeve. Meqenëse Exim nuk e paracakton të heqë modalitetin e privilegjit (deliver_drop_privilege = false), komandat e kaluara përmes "${run{...}}" do të ekzekutohen si rrënjë.
Vlen të përmendet se cenueshmëria ishte
Një rregullim për versionet e mëparshme që vazhdojnë të përdoren në shpërndarje aktualisht disponohet vetëm si
Burimi: opennet.ru