Atualização do Exim 4.94.2 com correções para 10 vulnerabilidades exploráveis ​​remotamente

Foi publicada a versão do servidor de e-mail Exim 4.94.2 com a eliminação de 21 vulnerabilidades (CVE-2020-28007-CVE-2020-28026, CVE-2021-27216), que foram identificadas pela Qualys e apresentadas sob o codinome 21Unhas. 10 problemas podem ser explorados remotamente (incluindo a execução de código com direitos de root) através da manipulação de comandos SMTP ao interagir com o servidor.

Todas as versões do Exim, cujo histórico é rastreado no Git desde 2004, são afetadas pelo problema. Protótipos funcionais de explorações foram preparados para 4 vulnerabilidades locais e 3 problemas remotos. Explorações para vulnerabilidades locais (CVE-2020-28007, CVE-2020-28008, CVE-2020-28015, CVE-2020-28012) permitem que você eleve seus privilégios para o usuário root. Dois problemas remotos (CVE-2020-28020, CVE-2020-28018) permitem que o código seja executado sem autenticação como usuário Exim (você pode então obter acesso root explorando uma das vulnerabilidades locais).

A vulnerabilidade CVE-2020-28021 permite a execução remota imediata de código com direitos de root, mas requer acesso autenticado (o usuário deve estabelecer uma sessão autenticada, após a qual poderá explorar a vulnerabilidade através da manipulação do parâmetro AUTH no comando MAIL FROM). O problema é causado pelo fato de que um invasor pode conseguir a substituição de string no cabeçalho de um arquivo spool escrevendo o valor authenticated_sender sem escapar adequadamente dos caracteres especiais (por exemplo, passando o comando “MAIL FROM:<> AUTH=Raven+0AReyes ”).

Além disso, observa-se que outra vulnerabilidade remota, CVE-2020-28017, pode ser explorada para executar código com direitos de usuário “exim” sem autenticação, mas requer mais de 25 GB de memória. Para as restantes 13 vulnerabilidades, também poderiam ser preparadas explorações, mas ainda não foi realizado trabalho nesse sentido.

Os desenvolvedores do Exim foram notificados dos problemas em outubro do ano passado e passaram mais de 6 meses desenvolvendo correções. Recomenda-se que todos os administradores atualizem urgentemente o Exim em seus servidores de e-mail para a versão 4.94.2. Todas as versões do Exim anteriores à versão 4.94.2 foram declaradas obsoletas. A publicação da nova versão foi coordenada com distribuições que publicaram simultaneamente atualizações de pacotes: Ubuntu, Arch Linux, FreeBSD, Debian, SUSE e Fedora. RHEL e CentOS não são afetados pelo problema, pois o Exim não está incluído em seu repositório de pacotes padrão (EPEL ainda não possui atualização).

Vulnerabilidades removidas:

  • CVE-2020-28017: Estouro de inteiro na função recebe_add_recipient();
  • CVE-2020-28020: Estouro de inteiro na função recebe_msg();
  • CVE-2020-28023: Leitura fora dos limites em smtp_setup_msg();
  • CVE-2020-28021: Substituição de nova linha no cabeçalho do arquivo em spool;
  • CVE-2020-28022: Escrita e leitura em área fora do buffer alocado na função extract_option();
  • CVE-2020-28026: Truncamento e substituição de string em spool_read_header();
  • CVE-2020-28019: Falha ao redefinir um ponteiro de função após ocorrer um erro BDAT;
  • CVE-2020-28024: Underflow de buffer na função smtp_ungetc();
  • CVE-2020-28018: Acesso ao buffer use-after-free em tls-openssl.c
  • CVE-2020-28025: Uma leitura fora dos limites na função pdkim_finish_bodyhash().

Vulnerabilidades locais:

  • CVE-2020-28007: Ataque de link simbólico no diretório de log do Exim;
  • CVE-2020-28008: Ataques ao diretório de spool;
  • CVE-2020-28014: Criação arbitrária de arquivos;
  • CVE-2021-27216: Exclusão arbitrária de arquivos;
  • CVE-2020-28011: Estouro de buffer em queue_run();
  • CVE-2020-28010: Gravação fora dos limites em main();
  • CVE-2020-28013: Estouro de buffer na função parse_fix_phrase();
  • CVE-2020-28016: Gravação fora dos limites em parse_fix_phrase();
  • CVE-2020-28015: Substituição de nova linha no cabeçalho do arquivo em spool;
  • CVE-2020-28012: Sinalizador close-on-exec ausente para um canal privilegiado sem nome;
  • CVE-2020-28009: Estouro de número inteiro na função get_stdinput().



Fonte: opennet.ru

Adicionar um comentário