Di servera posta Exim de
Di veavakirina xwerû de, êrîş dikare bêyî tevliheviyên nehewce ji hêla bikarhênerek herêmî ve were kirin, ji ber ku "verastkirin = wergir" ACL tête sepandin, ku ji bo navnîşanên derveyî kontrolên din pêk tîne. Dema ku mîheng têne guheztin, êrîşek ji dûr ve dikare çêbibe, wek mînak ji bo domainek din wekî MX-ya duyemîn tevbigere, ACL-ya "verify=wergir" rakirin, an hin guheztinên local_part_suffix). Êrîşek ji dûr ve jî gengaz e ku êrîşkar bikaribe girêdana bi serverê re 7 rojan vekirî bihêle (mînak, di her hûrdemê de yek byte bişîne da ku demek derbas bike). Di heman demê de, mimkun e ku vektorên êrîşê yên hêsan ên ji bo karanîna dûr a pirsgirêkê hene.
Qelsî ji ber verastkirina çewt a navnîşana wergir di fonksiyona deliver_message() de ku di pelê /src/deliver.c de hatî destnîşan kirin pêk tê. Bi manîpulekirina formatkirina navnîşanê, êrîşkar dikare bigihîje cîhgirtina daneyên xwe di nav argumanên fermanek ku bi fonksiyona execv() ve bi mafên root ve tê gotin. Operasyon ne hewce ye ku teknîkên tevlihev ên ku ji bo zêdekirina tampon an xerabûna bîranînê têne bikar anîn; guheztina karaktera hêsan bes e.
Pirsgirêk bi karanîna avahiyê ji bo veguherîna navnîşan ve girêdayî ye:
teslîm_localpart = berfireh_string(
string_sprintf("${local_part:%s}", new->navnîşan));
teslîm_domain = berfireh_string(
string_sprintf("${domain:%s}", new->navnîşan));
Fonksîyona expand_string() berhevkarek pir tevlihev e, di nav de naskirina fermana "${run{argumanên fermanê}" jî, ku rê li ber destpêkirina destekkerek derveyî vedike. Ji ber vê yekê, ji bo êrîşkirina di nav danişînek SMTP de, bikarhênerek herêmî tenê pêdivî ye ku fermanek wekî 'RCPT BO "username+${run{...}}@localhost"' bişîne, ku localhost yek ji mêvandarên navnîşa local_domains e. û navê bikarhêner navê bikarhênerek herêmî ya heyî ye.
Ger server wekî relayek e-nameyê bixebite, bes e ku meriv ji dûr ve fermana 'RCPT BO "${run{...}}@relaydomain.com" bişîne, ku relaydomain.com yek ji hosteyên ku di relay_to_domains de hatî navnîş kirin. beşa mîhengan. Ji ber ku Exim moda îmtiyazê ranewestîne (deliver_drop_privilege = xelet), emrên ku ji "${run{...}}" derbas dibin dê wekî root werin bicîh kirin.
Hêjayî gotinê ye ku qelsî hebû
Rastkirinek ji bo guhertoyên berê yên ku di belavkirinan de têne bikar anîn heya niha tenê wekî peyda dibe
Source: opennet.ru