Foi identificada uma vulnerabilidade crítica no servidor de e-mail Exim (CVE-2026-45185), que permite a execução remota de código no servidor. O problema se manifesta a partir da ramificação Exim 4.97 quando compilado com a biblioteca GnuTLS ("USE_GNUTLS=yes") e foi corrigido na versão Exim 4.99.3. Compilações com OpenSSL e outras bibliotecas que não sejam GnuTLS não são afetadas pela vulnerabilidade.
O problema é causado por acessos à memória já liberada (use-after-free) no backend do GnuTLS e pode ser explorado ao interagir com servidores que suportam a extensão "ESMTP CHUNKING" e o comando BDAT para envio parcelado do corpo da mensagem em vez de um bloco indivisível via comando DATA. A corrupção do conteúdo da memória do processo ocorre quando o cliente inicia o fechamento prematuro da sessão TLS usando o comando close_notify durante o envio do corpo da mensagem via BDAT e, em seguida, envia um byte sem criptografia no mesmo TCP.
Ao receber o comando close_notify no backend do GnuTLS, é chamada a função de interrupção da sessão TLS, que libera os buffers relacionados à sessão. Devido a um erro no código do backend, mesmo após a liberação do buffer TLS, o manipulador BDAT continua lendo dados do fluxo e chama a função ungetc(), o que, ao enviar dados não criptografados em seguida, resulta na gravação de um byte em um buffer já liberado. Este byte corrompe os metadados do alocador de memória na pilha (heap), o que foi utilizado para realizar experimentos na criação de um exploit que executa código arbitrário. servidor.
Inicialmente, os pesquisadores geraram um exploit parcialmente funcional através de IA, que permitiu a execução de código, mas que operava apenas em condições controladas, em sistemas com a proteção ASLR e PIE desativadas, e uma versão específica da biblioteca libc. Em seguida, foi feita uma tentativa de criar um exploit com a participação humana, na qual algumas dificuldades foram superadas e um vazamento do endereço da pilha foi conseguido, mas, até a data prevista para a divulgação da vulnerabilidade, o exploit não foi finalizado. De acordo com os pesquisadores que descobriram a vulnerabilidade, assistentes de IA ainda não são capazes de criar exploits para produtos complexos, mas esperam que, no futuro, outros pesquisadores consigam concluir seu trabalho e escrever um exploit totalmente funcional.
As grandes distribuições utilizam a versão Exim 4.97+ no Debian 13, Ubuntu 24.04+, SUSE/openSUSE, Arch Linux, Alpine Linux 3.19+, ALT Linux p11, ROSA, Gentoo, OpenWRT, Fedora, EPEL (exim não está no repositório padrão do RHEL) e FreeBSD. A construção do Exim com GnuTLS é aplicada por padrão no Debian e Ubuntu; em outras distribuições, é necessário verificar. Como uma solução alternativa para bloquear vulnerabilidades, pode-se desativar a extensão CHUNKING através da configuração chunking_advertise_hosts no arquivo de configuração.
Fonte: opennet.ru
