Sa Exim mail server
Sa default nga pag-configure, ang pag-atake mahimo nga himuon nga walaβy kinahanglan nga mga komplikasyon sa usa ka lokal nga tiggamit, tungod kay ang "verify = recipient" nga ACL gipadapat, nga nagpahigayon dugang nga pagsusi alang sa mga eksternal nga adres. Ang usa ka hilit nga pag-atake mahimong mahitabo kung ang mga setting gibag-o, sama sa paglihok ingon usa ka sekondaryang MX alang sa lain nga domain, pagtangtang sa "verify=recipient" ACL, o pipila nga mga pagbag-o sa local_part_suffix). Posible usab ang usa ka hilit nga pag-atake kung ang tig-atake makahimo sa pagpadayon sa koneksyon sa server nga bukas sulod sa 7 ka adlaw (pananglitan, pagpadala usa ka byte matag minuto aron makalikay sa usa ka timeout). Sa samang higayon, posible nga adunay mas simple nga mga vector sa pag-atake alang sa hilit nga pagpahimulos sa problema.
Ang kahuyang tungod sa sayop nga pag-verify sa adres sa nakadawat sa deliver_message() function nga gihubit sa /src/deliver.c file. Pinaagi sa pagmaniobra sa pag-format sa adres, makab-ot sa usa ka tig-atake ang pag-ilis sa iyang datos ngadto sa mga argumento sa usa ka sugo nga gitawag pinaagi sa execv() function nga adunay mga katungod sa gamut. Ang operasyon wala magkinahanglan sa paggamit sa komplikadong mga teknik nga gigamit alang sa buffer overflows o memory corruption; igo na ang yano nga pag-ilis sa karakter.
Ang problema nalangkit sa paggamit sa construct para sa address conversion:
deliver_localpart = expand_string(
string_sprintf("${local_part:%s}", bag-o->adres));
deliver_domain = expand_string(
string_sprintf("${domain:%s}", bag-o->adres));
Ang expand_string() function kay usa ka overcomplicated combiner, apil ang pag-ila sa command "${run{command arguments}", nga motultol sa paglusad sa external handler. Busa, aron atakehon sulod sa sesyon sa SMTP, ang usa ka lokal nga user kinahanglan lang magpadala ug command sama sa 'RCPT TO βusername+${run{...}}@localhostβ', diin ang localhost maoy usa sa mga host gikan sa local_domains list, ug ang username mao ang ngalan sa usa ka kasamtangan nga lokal nga tiggamit.
Kung ang server nagtrabaho isip usa ka mail relay, igo na nga ipadala sa layo ang command 'RCPT TO "${run{...}}@relaydomain.com"', diin ang relaydomain.com usa sa mga host nga nalista sa relay_to_domains seksyon sa mga setting. Tungod kay ang Exim dili default sa pagtangtang sa privilege mode (deliver_drop_privilege = false), ang mga sugo nga gipasa pinaagi sa "${run{...}}" ipatuman isip gamut.
Mamatikdan nga ang pagkahuyang
Ang usa ka pag-ayo alang sa nangaging mga bersyon nga padayon nga gigamit sa mga pag-apod-apod sa pagkakaron magamit ra ingon
Source: opennet.ru