I Exim mailserver
I standardkonfigurationen kan angrebet udføres uden unødvendige komplikationer af en lokal bruger, da "verify = recipient" ACL anvendes, som udfører yderligere kontroller for eksterne adresser. Et fjernangreb kan forekomme, når indstillinger ændres, såsom at fungere som en sekundær MX for et andet domæne, fjerne "verify=recipient" ACL'en eller visse ændringer af local_part_suffix). Et fjernangreb er også muligt, hvis angriberen er i stand til at holde forbindelsen til serveren åben i 7 dage (for eksempel ved at sende en byte i minuttet for at omgå en timeout). Samtidig er det muligt, at der findes enklere angrebsvektorer til fjernudnyttelse af problemet.
Sårbarheden er forårsaget af forkert bekræftelse af modtagerens adresse i funktionen deliver_message() defineret i filen /src/deliver.c. Ved at manipulere adresseformateringen kan en angriber opnå substitution af sine data i argumenterne for en kommando kaldet gennem funktionen execv() med root-rettigheder. Betjening kræver ikke brug af komplekse teknikker, der bruges til bufferoverløb eller hukommelseskorruption; simpel tegnsubstitution er tilstrækkelig.
Problemet er relateret til brugen af konstruktionen til adressekonvertering:
levering_lokalpart = expand_string(
string_sprintf("${local_part:%s}", ny->adresse));
levere_domæne = expand_string(
string_sprintf("${domæne:%s}", ny->adresse));
Expand_string()-funktionen er en overkompliceret combiner, herunder genkendelse af kommandoen "${run{command arguments}", som fører til lanceringen af en ekstern handler. For at angribe inden for en SMTP-session behøver en lokal bruger kun at sende en kommando som 'RCPT TO "brugernavn+${run{...}}@localhost"', hvor localhost er en af værterne fra listen local_domains, og brugernavn er navnet på en eksisterende lokal bruger.
Hvis serveren fungerer som et mail-relæ, er det nok at fjernsende kommandoen 'RCPT TO "${run{...}}@relaydomain.com"', hvor relaydomain.com er en af de værter, der er angivet i relay_to_domains afsnittet om indstillinger. Da Exim ikke som standard dropper privilegietilstand (deliver_drop_privilege = false), vil kommandoer, der sendes via "${run{...}}" blive udført som root.
Det er bemærkelsesværdigt, at sårbarheden var
En rettelse til tidligere versioner, der fortsat bruges i distributioner, er i øjeblikket kun tilgængelig som
Kilde: opennet.ru