Utgivelsen av e-postserveren Exim 4.94.2 har blitt publisert med eliminering av 21 sårbarheter (CVE-2020-28007-CVE-2020-28026, CVE-2021-27216), som ble identifisert av Qualys og presentert under kodenavnet 21Negler. 10 problemer kan utnyttes eksternt (inkludert kjøring av kode med rotrettigheter) gjennom manipulering av SMTP-kommandoer når du samhandler med serveren.
Alle versjoner av Exim, hvis historie har blitt sporet i Git siden 2004, er berørt av problemet. Arbeidsprototyper av utnyttelser er utarbeidet for 4 lokale sårbarheter og 3 eksterne problemer. Utnyttelse for lokale sårbarheter (CVE-2020-28007, CVE-2020-28008, CVE-2020-28015, CVE-2020-28012) lar deg heve rettighetene dine til rotbrukeren. To eksterne problemer (CVE-2020-28020, CVE-2020-28018) gjør at kode kan kjøres uten autentisering som Exim-bruker (du kan da få root-tilgang ved å utnytte en av de lokale sårbarhetene).
CVE-2020-28021-sårbarheten tillater umiddelbar ekstern kjøring av kode med rotrettigheter, men krever autentisert tilgang (brukeren må etablere en autentisert sesjon, hvoretter de kan utnytte sårbarheten gjennom manipulering av AUTH-parameteren i MAIL FROM-kommandoen). Problemet er forårsaket av det faktum at en angriper kan oppnå strengerstatning i overskriften til en spoolfil ved å skrive authenticated_sender-verdien uten å unnslippe spesialtegn (for eksempel ved å sende kommandoen "MAIL FROM:<> AUTH=Raven+0AReyes ”).
I tillegg bemerkes det at en annen ekstern sårbarhet, CVE-2020-28017, kan utnyttes til å kjøre kode med «exim»-brukerrettigheter uten autentisering, men krever mer enn 25 GB minne. For de resterende 13 sårbarhetene kan utnyttelser potensielt også forberedes, men arbeidet i denne retningen er ennå ikke utført.
Exim-utviklerne ble varslet om problemene i oktober i fjor og brukte mer enn 6 måneder på å utvikle rettelser. Alle administratorer anbefales å raskt oppdatere Exim på e-postserverne sine til versjon 4.94.2. Alle versjoner av Exim før utgivelsen 4.94.2 har blitt erklært foreldet. Publiseringen av den nye versjonen ble koordinert med distribusjoner som samtidig publiserte pakkeoppdateringer: Ubuntu, Arch Linux, FreeBSD, Debian, SUSE og Fedora. RHEL og CentOS er ikke berørt av problemet, siden Exim ikke er inkludert i deres standardpakkelager (EPEL har ennå ikke en oppdatering).
Fjernet sårbarheter:
- CVE-2020-28017: Heltallsoverflyt i receive_add_recipient()-funksjonen;
- CVE-2020-28020: Heltallsoverflyt i receive_msg()-funksjonen;
- CVE-2020-28023: Utenfor grensene lest i smtp_setup_msg();
- CVE-2020-28021: Nylinjeerstatning i spoolfiloverskrift;
- CVE-2020-28022: Skriv og les i et område utenfor den tildelte bufferen i extract_option()-funksjonen;
- CVE-2020-28026: Strengeavkorting og substitusjon i spool_read_header();
- CVE-2020-28019: Krasj når en funksjonspeker tilbakestilles etter at en BDAT-feil oppstår;
- CVE-2020-28024: Bufferunderflyt i smtp_ungetc()-funksjonen;
- CVE-2020-28018: Bruk etter-fri buffertilgang i tls-openssl.c
- CVE-2020-28025: En out-of-bounds-lesing i pdkim_finish_bodyhash()-funksjonen.
Lokale sårbarheter:
- CVE-2020-28007: Symbolsk lenkeangrep i Exim-loggkatalogen;
- CVE-2020-28008: Spool-katalogangrep;
- CVE-2020-28014: Vilkårlig filoppretting;
- CVE-2021-27216: Vilkårlig filsletting;
- CVE-2020-28011: Bufferoverflyt i queue_run();
- CVE-2020-28010: Out-of-bounds skriv i main();
- CVE-2020-28013: Bufferoverflyt i funksjonen parse_fix_phrase();
- CVE-2020-28016: Out-of-bounds skriv i parse_fix_phrase();
- CVE-2020-28015: Nylinjeerstatning i spoolfiloverskrift;
- CVE-2020-28012: Manglende close-on-exec-flagg for en privilegert navngitt pipe;
- CVE-2020-28009: Heltallsoverflyt i get_stdinput()-funksjonen.
Kilde: opennet.ru