Se encontró una vulnerabilidad qmail que permite explotarlo remotamente
Los investigadores de seguridad de Qualys han demostrado la posibilidad de explotar una vulnerabilidad en el servidor de correo qmail, conocida desde 2005 (CVE-2005-1513), pero que no se corrigió, ya que qmail afirmó que no era realista crear un exploit funcional que pudiera usarse para atacar sistemas en la configuración por defecto.
Pero tal parece que los desarrolladores de qmail se equivocaron, ya que Qualys logró preparar un exploit que refuta esta suposición y permite iniciar la ejecución remota de código en el servidor mediante el envío de un mensaje especialmente diseñado.
El problema es causado por un desbordamiento en la función stralloc_readyplus (), que puede ocurrir al procesar un mensaje muy grande. Para la operación, se requería un sistema de 64 bits con una capacidad de memoria virtual de más de 4 GB.
En el análisis inicial de la vulnerabilidad en 2005, Daniel Bernstein argumentó que la suposición en el código de que el tamaño de la matriz asignada siempre cabe en un valor de 32 bits se basa en el hecho de que nadie proporciona gigabytes de memoria a cada proceso.
En los últimos 15 años, los sistemas de 64 bits en los servidores han reemplazado a los de 32 bits, la cantidad de memoria suministrada y el ancho de banda de la red han aumentado dramáticamente.
Los paquetes que acompañan a qmail tomaron en cuenta el comentario de Bernstein y al iniciar el proceso qmail-smtpd, limitaron la memoria disponible (por ejemplo, en Debian 10, el límite se estableció en 7 MB).
Pero los ingenieros de Qualys descubrieron que esto no es suficiente y además de qmail-smtpd, se puede llevar a cabo un ataque remoto en el proceso qmail-local, que permaneció ilimitado en todos los paquetes probados.
Como prueba, se preparó un prototipo de exploit, que es adecuado para atacar el paquete suministrado con Debian con qmail en la configuración predeterminada. Para organizar la ejecución remota de código durante un ataque, el servidor requiere 4 GB de espacio libre en disco y 8 GB de RAM.
El exploit permite ejecutar cualquier comando de shell con los derechos de cualquier usuario en el sistema, excepto los usuarios root y del sistema que no tienen su propio subdirectorio en el directorio «/ home»
El ataque se lleva a cabo enviando un mensaje de correo electrónico muy grande, que incluye varias líneas en el encabezado, de aproximadamente 4 GB y 576 MB de tamaño.
Al procesar dicha línea en qmail-local se produce un desbordamiento de enteros al intentar entregar un mensaje a un usuario local. A continuación, un desbordamiento de enteros conduce a un desbordamiento del búfer al copiar datos y la posibilidad de sobrescribir páginas de memoria con el código libc.
Además, en el proceso de llamar a qmesearch () en qmail-local, el archivo «.qmail-extension» se abre a través de la función open (), lo que conduce al lanzamiento real del sistema («. Qmail-extension»). Pero como parte del archivo de «extensión» se forma en función de la dirección del destinatario (por ejemplo, «localuser-extension @ localdomain»), los atacantes pueden organizar el inicio del comando especificando el usuario «localuser-; command; @localdomain» como destinatario del mensaje.
El análisis del código también reveló dos vulnerabilidades en el parche adicional de verificación de qmail, que es parte del paquete Debian.
- La primera vulnerabilidad (CVE-2020-3811) permite omitir la verificación de direcciones de correo electrónico, y la segunda (CVE-2020-3812) conduce a una fuga de información local.
- La segunda vulnerabilidad se puede usar para verificar la presencia de archivos y directorios en el sistema, incluidos los disponibles solo para root (qmail-verify comienza con privilegios de root) a través de una llamada directa al controlador local.
Se ha preparado un conjunto de parches para este paquete, eliminando las antiguas vulnerabilidades de 2005 al agregar límites de memoria dura al código de función alloc () y nuevos problemas en qmail.
Además se preparó por separado una versión actualizada del parche qmail. Los desarrolladores de la version de notqmail prepararon sus parches para bloquear viejos problemas y también comenzaron a trabajar para eliminar todos los posibles desbordamientos de enteros en el código.
Fuente: https://www.openwall.com/