Exim 4.94.2-opdatering herstel 10 kwesbaarhede wat op afstand ontgin kan word

Die vrystelling van die Exim 4.94.2-posbediener is gepubliseer met die uitskakeling van 21 kwesbaarhede (CVE-2020-28007-CVE-2020-28026, CVE-2021-27216), wat deur Qualys geïdentifiseer is en onder die kodenaam aangebied is 21Spykers. 10 probleme kan op afstand uitgebuit word (insluitend die uitvoering van kode met wortelregte) deur manipulasie van SMTP-opdragte wanneer daar met die bediener interaksie is.

Alle weergawes van Exim, wie se geskiedenis sedert 2004 in Git opgespoor is, word deur die probleem geraak. Werkende prototipes van uitbuitings is voorberei vir 4 plaaslike kwesbaarhede en 3 afgeleë probleme. Uitbuitings vir plaaslike kwesbaarhede (CVE-2020-28007, CVE-2020-28008, CVE-2020-28015, CVE-2020-28012) laat jou toe om jou voorregte na die wortelgebruiker te verhef. Twee afgeleë kwessies (CVE-2020-28020, CVE-2020-28018) laat toe dat kode sonder verifikasie as die Exim-gebruiker uitgevoer word (jy kan dan worteltoegang kry deur een van die plaaslike kwesbaarhede te ontgin).

Die CVE-2020-28021 kwesbaarheid laat onmiddellike uitvoering van afgeleë kode met wortelregte toe, maar vereis gewaarmerkte toegang (die gebruiker moet 'n geverifieerde sessie vestig, waarna hulle die kwesbaarheid kan ontgin deur die manipulasie van die AUTH-parameter in die MAIL FROM-opdrag). Die probleem word veroorsaak deur die feit dat 'n aanvaller stringvervanging in die kopskrif van 'n spoellêer kan bewerkstellig deur die authenticated_sender-waarde te skryf sonder om spesiale karakters behoorlik te ontsnap (byvoorbeeld deur die opdrag “MAIL FROM:<> AUTH=Raven+0AReyes deur te gee. ”).

Daarbenewens word opgemerk dat 'n ander afgeleë kwesbaarheid, CVE-2020-28017, ontginbaar is om kode met "exim"-gebruikersregte sonder verifikasie uit te voer, maar meer as 25 GB geheue vereis. Vir die oorblywende 13 kwesbaarhede kan uitbuitings moontlik ook voorberei word, maar werk in hierdie rigting is nog nie uitgevoer nie.

Die Exim-ontwikkelaars is in Oktober verlede jaar van die probleme in kennis gestel en het meer as 6 maande daaraan bestee om regstellings te ontwikkel. Alle administrateurs word aanbeveel om Exim dringend op hul posbedieners op te dateer na weergawe 4.94.2. Alle weergawes van Exim voor vrystelling 4.94.2 is verouderd verklaar. Die publikasie van die nuwe weergawe is gekoördineer met verspreidings wat gelyktydig pakketopdaterings gepubliseer het: Ubuntu, Arch Linux, FreeBSD, Debian, SUSE en Fedora. RHEL en CentOS word nie deur die probleem geraak nie, aangesien Exim nie by hul standaardpakketbewaarplek ingesluit is nie (EPEL het nog nie 'n opdatering nie).

Verwyder kwesbaarhede:

  • CVE-2020-28017: Heelgetal oorloop in die receive_add_recipient() funksie;
  • CVE-2020-28020: Heelgetal oorloop in die receive_msg() funksie;
  • CVE-2020-28023: Buite perke gelees in smtp_setup_msg();
  • CVE-2020-28021: Nuwelynvervanging in spoellêerkopskrif;
  • CVE-2020-28022: Skryf en lees in 'n area buite die toegewese buffer in die extract_option() funksie;
  • CVE-2020-28026: Stringafkapping en -vervanging in spool_read_header();
  • CVE-2020-28019: Omval wanneer 'n funksiewyser teruggestel word nadat 'n BDAT-fout plaasgevind het;
  • CVE-2020-28024: Bufferondervloei in die smtp_ungetc()-funksie;
  • CVE-2020-28018: Gebruik-na-gratis buffertoegang in tls-openssl.c
  • CVE-2020-28025: 'n Buitegrens gelees in die pdkim_finish_bodyhash()-funksie.

Plaaslike kwesbaarhede:

  • CVE-2020-28007: Simboliese skakelaanval in die Exim-loggids;
  • CVE-2020-28008: Spoelgidsaanvalle;
  • CVE-2020-28014: Skep van arbitrêre lêers;
  • CVE-2021-27216: Arbitrêre lêerskrap;
  • CVE-2020-28011: Buffer oorloop in queue_run();
  • CVE-2020-28010: Buitegrense skryf in hoof();
  • CVE-2020-28013: Bufferoorloop in funksie parse_fix_phrase();
  • CVE-2020-28016: Buite-grens skryf in parse_fix_phrase();
  • CVE-2020-28015: Nuwelynvervanging in spoellêerkopskrif;
  • CVE-2020-28012: Ontbrekende naby-op-uitvoerende vlag vir 'n bevoorregte naamlose pyp;
  • CVE-2020-28009: Heelgetal oorloop in die get_stdinput() funksie.



Bron: opennet.ru

Voeg 'n opmerking