Exim parcheado - parche nuevamente. Nueva ejecución remota de comandos en Exim 4.92 en una solicitud


Más recientemente, a principios del verano, hubo llamadas masivas para actualizar Exim a la versión 4.92 debido a la vulnerabilidad CVE-2019-10149 ( Actualización urgente de Exim a 4.92 - infección activa / Habr ). Y el otro día resultó que el malware Sustes decidió aprovechar esta vulnerabilidad.


Ahora todos los que se actualizan con urgencia pueden volver a ser "felices": el 21 de julio de 2019, el investigador de Zerons descubrió una vulnerabilidad crítica en el agente Exim Mail Transfer (MTA) al usar TLS para las versiones de 4.80 a 4.92.1 inclusive, lo que permite la ejecución remota de código con privilegios privilegiados ( CVE -2019-15846 ).


Vulnerabilidad


La vulnerabilidad está presente cuando se usan las bibliotecas GnuTLS y OpenSSL cuando se establece una conexión TLS segura.


Según el desarrollador Heiko Schlittermann, el archivo de configuración en Exim no usa TLS por defecto, sin embargo, muchas distribuciones crean los certificados necesarios durante la instalación e incluyen una conexión segura. Las versiones más recientes de Exim también establecen la opción tls_advertise_hosts = * y generan los certificados necesarios.


Depende de la configuración. La mayoría de las distribuciones lo habilitan por defecto, pero Exim necesita un certificado + clave para funcionar como un servidor TLS. Probablemente las distribuciones creen un certificado durante la configuración. Los Exims más nuevos tienen la opción tls_advertise_hosts predeterminada en "*" y crean un certificado autofirmado, si no se proporciona ninguno.

La vulnerabilidad en sí misma consiste en un procesamiento SNI incorrecto (Server Name Indication, una tecnología introducida en 2003 en RFC 3546 para que un cliente solicite un certificado válido para un nombre de dominio, Distribución del estándar TLS SNI / Blog de la compañía WEBO Group / Habr ) durante un apretón de manos TLS. Es suficiente que el atacante envíe un SNI que termine en una barra diagonal inversa ("\") y un carácter nulo ("\ 0").


Los investigadores de Qualys encontraron un error en la función string_printing (tls_in.sni), que es el escape incorrecto "\". Como resultado, la barra invertida se escribe sin escapes en el archivo de encabezado del carrete de impresión. Además, este archivo con derechos privilegiados es leído por la función spool_read_header (), lo que conduce a un desbordamiento del montón.


Vale la pena señalar que, por el momento, los desarrolladores de Exim han creado vulnerabilidades PoC con la ejecución de comandos en un servidor vulnerable remoto, pero aún no está disponible públicamente. Debido a la facilidad de operación del error, esto es solo cuestión de tiempo y bastante corto.


Un estudio más detallado de Qualys se puede encontrar aquí .


Usando SNI en TLS


Usando SNI en TLS


Número de servidores públicos potencialmente vulnerables.


Según las estadísticas de un gran proveedor de alojamiento E-Soft Inc, a partir del 1 de septiembre, la versión 4.92 se utiliza en más del 70% de los hosts en servidores arrendados.


VersiónNumero de servidoresPor ciento
4.92.164711,28%
4.9237643674,22%
4.915817911,47%
4.957321.13%
4.89107002,11%
4.87141772,80%
4.8499371.96%
Otras versiones255685.04%

Estadísticas de la empresa E-Soft Inc


Si recurre al motor de búsqueda Shodan , entonces de 5,250,000 en la base de datos del servidor:


  • aproximadamente 3,500,000 usan Exim 4.92 (aproximadamente 1,380,000 usando SSL / TLS);
  • más de 74,000 usan 4.92.1 (aproximadamente 25,000 usando SSL / TLS).

Por lo tanto, hay aproximadamente 1,5 millones de servidores Exim potencialmente vulnerables y conocidos públicamente.


Encontrar servidores Exim en Shodan


Encontrar servidores Exim en Shodan


Protección


  • La opción más fácil, pero no recomendada, es no usar TLS, lo que conducirá al reenvío de mensajes de correo electrónico en texto claro.
  • Para evitar la explotación de la vulnerabilidad, será más preferible actualizar a Exim Internet Mailer 4.92.2 .
  • Si no es posible actualizar o instalar la versión parcheada, puede establecer la ACL en la configuración de Exim para la opción acl_smtp_mail con las siguientes reglas:

    # to be prepended to your mail acl (the ACL referenced # by the acl_smtp_mail main config option) deny condition = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}} deny condition = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}} 

Source: https://habr.com/ru/post/467089/


All Articles