
Solución real para Zimbra CVE-2024-45519 - El parche oficial está incompleto
Arreglo real de Zimbra CVE-2024-45519: el parche oficial está incompleto
CVE-2024-45519 es una vulnerabilidad crítica de ejecución remota de código (RCE) (CVSS 9.8) en Zimbra Collaboration Suite. Muchos administradores creen que no están protegidos después de aplicar el parche oficial. Este documento aclara la situación real.
CVE-2024-45519 permite la ejecución remota de comandos sin autenticación a través del servicio postjournal
en el puerto 10027.
Tras una investigación durante una respuesta a incidentes, podemos confirmar que:
Aplicar el parche p46/p47 + deshabilitar postjournal es suficiente:
zmlocalconfig -e postjournal_enabled=false
zmcontrol restart
El parche reemplaza el vulnerable popen() con execvp() en el binario de postjournal,
impidiendo la inyección de comandos incluso cuando el puerto 10027 está abierto.
El puerto 10027 es necesario para el flujo de correo de Zimbra. Cerrarlo romperá la entrega de correo:
# DO NOT DO THIS - it will break your mail server!
# sed -i 's/^\[%%zimbraLocalBindAddress%%\]:10027 inet/#...' master.cf.in
Comprueba que la vulnerabilidad está parcheada:
printf "EHLO probe.test\r\nMAIL FROM:<[email protected]>\r\nRCPT TO:<x: \$(echo TEST > /opt/zimbra/mailboxd/webapps/zimbra/public/test.txt)>\r\nQUIT\r\n" \
| nc 127.0.0.1 25
# Expected: 555 5.5.4 Unsupported option OR 501 5.1.3 Bad recipient address syntax
# Verify file was NOT created:
ls /opt/zimbra/mailboxd/webapps/zimbra/public/test.txt
# Expected: No such file or directory = PATCHED ✅
# Regenerate PreAuth Key
su - zimbra -c "zmprov generateDomainPreAuthKey -f yourdomain.com"
# Monitor for webshells every 5 minutes
cat > /root/check_webshell.sh << 'EOF'
#!/bin/bash
WEBDIR="/opt/zimbra/mailboxd/webapps/zimbra/public"
ALERT_EMAIL="[email protected]"
LOGFILE="/var/log/webshell_check.log"
if [ -f "$WEBDIR/version.txt" ]; then
echo "$(date) - ALERT: version.txt detected!" >> $LOGFILE
rm -f "$WEBDIR/version.txt"
echo "SECURITY ALERT: version.txt detected on $(hostname)" | \
/opt/zimbra/common/sbin/sendmail -f [email protected] $ALERT_EMAIL
fi
find "$WEBDIR" -maxdepth 1 -name "*.jsp" -newer "$WEBDIR/login.jsp" -type f | while read f; do
echo "$(date) - ALERT: Suspicious JSP: $f" >> $LOGFILE
rm -f "$f"
echo "SECURITY ALERT: Suspicious file $f detected" | \
/opt/zimbra/common/sbin/sendmail -f [email protected] $ALERT_EMAIL
done
EOF
chmod +x /root/check_webshell.sh
echo "*/5 * * * * root /root/check_webshell.sh" > /etc/cron.d/check_webshell
| Versión | Estado |
|---|---|
| Zimbra 8.8.15 anterior a p46 | Vulnerable |
| Zimbra 8.8.15 p46/p47 | Parcheada ✅ |
| Zimbra 9.0.0 anterior a p41 | Vulnerable |
| Zimbra 10.x anterior a 10.0.9 | Vulnerable |
Descubierto durante una respuesta a incidentes por Lionel Sarrazin - CDH Informatique