Aggiornamento Exim 4.94.2 con correzioni per 10 vulnerabilità sfruttabili da remoto

Pubblicato il rilascio del mail server Exim 4.94.2 con l'eliminazione di 21 vulnerabilità (CVE-2020-28007-CVE-2020-28026, CVE-2021-27216), che sono state identificate da Qualys e presentate sotto il nome in codice 21Chiodi. 10 problemi possono essere sfruttati da remoto (inclusa l'esecuzione di codice con diritti di root) attraverso la manipolazione dei comandi SMTP durante l'interazione con il server.

Tutte le versioni di Exim, la cui storia è tracciata in Git dal 2004, sono interessate dal problema. Sono stati preparati prototipi funzionanti di exploit per 4 vulnerabilità locali e 3 problemi remoti. Gli exploit per le vulnerabilità locali (CVE-2020-28007, CVE-2020-28008, CVE-2020-28015, CVE-2020-28012) ti consentono di elevare i tuoi privilegi all'utente root. Due emissioni remote (CVE-2020-28020, CVE-2020-28018) consentono l'esecuzione del codice senza autenticazione come utente Exim (quindi è possibile ottenere l'accesso root sfruttando una delle vulnerabilità locali).

La vulnerabilità CVE-2020-28021 consente l'esecuzione immediata di codice remoto con diritti di root, ma richiede un accesso autenticato (l'utente deve stabilire una sessione autenticata, dopodiché può sfruttare la vulnerabilità attraverso la manipolazione del parametro AUTH nel comando MAIL FROM). Il problema è causato dal fatto che un utente malintenzionato può ottenere la sostituzione di una stringa nell'intestazione di un file di spool scrivendo il valore authenticated_sender senza eseguire correttamente l'escape dei caratteri speciali (ad esempio, passando il comando "MAIL FROM:<> AUTH=Raven+0AReyes ").

Inoltre, si nota che un’altra vulnerabilità remota, CVE-2020-28017, può essere sfruttata per eseguire codice con diritti utente “exim” senza autenticazione, ma richiede più di 25 GB di memoria. Per le restanti 13 vulnerabilità potrebbero potenzialmente essere preparati anche degli exploit, ma i lavori in questa direzione non sono ancora stati portati avanti.

Gli sviluppatori di Exim sono stati informati dei problemi nell'ottobre dello scorso anno e hanno trascorso più di 6 mesi a sviluppare soluzioni. Si consiglia a tutti gli amministratori di aggiornare urgentemente Exim sui propri server di posta alla versione 4.94.2. Tutte le versioni di Exim precedenti alla release 4.94.2 sono state dichiarate obsolete. La pubblicazione della nuova versione è stata coordinata con le distribuzioni che hanno pubblicato contemporaneamente gli aggiornamenti dei pacchetti: Ubuntu, Arch Linux, FreeBSD, Debian, SUSE e Fedora. RHEL e CentOS non sono interessati dal problema, poiché Exim non è incluso nel loro repository di pacchetti standard (EPEL non ha ancora un aggiornamento).

Vulnerabilità rimosse:

  • CVE-2020-28017: overflow di numeri interi nella funzione receiver_add_recipient();
  • CVE-2020-28020: overflow di numeri interi nella funzione receiver_msg();
  • CVE-2020-28023: lettura fuori limite in smtp_setup_msg();
  • CVE-2020-28021: sostituzione di nuova riga nell'intestazione del file di spool;
  • CVE-2020-28022: scrive e legge in un'area esterna al buffer allocato nella funzione extract_option();
  • CVE-2020-28026: troncamento e sostituzione di stringhe in spool_read_header();
  • CVE-2020-28019: arresto anomalo durante la reimpostazione di un puntatore a funzione dopo che si è verificato un errore BDAT;
  • CVE-2020-28024: Underflow del buffer nella funzione smtp_ungetc();
  • CVE-2020-28018: accesso al buffer use-after-free in tls-openssl.c
  • CVE-2020-28025: lettura fuori limite nella funzione pdkim_finish_bodyhash().

Vulnerabilità locali:

  • CVE-2020-28007: attacco con collegamento simbolico nella directory del registro Exim;
  • CVE-2020-28008: Attacchi alle directory di spool;
  • CVE-2020-28014: creazione di file arbitrari;
  • CVE-2021-27216: Eliminazione arbitraria di file;
  • CVE-2020-28011: overflow del buffer in Queue_run();
  • CVE-2020-28010: scrittura fuori dai limiti in main();
  • CVE-2020-28013: overflow del buffer nella funzione parse_fix_phrase();
  • CVE-2020-28016: scrittura fuori dai limiti in parse_fix_phrase();
  • CVE-2020-28015: sostituzione di nuova riga nell'intestazione del file di spool;
  • CVE-2020-28012: flag close-on-exec mancante per una pipe senza nome privilegiata;
  • CVE-2020-28009: overflow di numeri interi nella funzione get_stdinput().



Fonte: opennet.ru

Aggiungi un commento