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/