Exim patché - patchez à nouveau. Nouvelle exécution de commande à distance dans Exim 4.92 en une seule demande


Plus récemment, au début de l'été, il y a eu des appels massifs pour mettre à jour Exim vers la version 4.92 en raison de la vulnérabilité CVE-2019-10149 (Mettre à jour d'urgence Exim vers 4.92 - infection active / Habr ). Et l'autre jour, il s'est avéré que le malware Sustes a décidé de profiter de cette vulnérabilité.


Désormais, tous ceux mis à jour en urgence peuvent à nouveau être «heureux»: le 21 juillet 2019, le chercheur de Zerons a découvert une vulnérabilité critique dans l' agent de transfert de courrier Exim (MTA) lors de l'utilisation de TLS pour les versions 4.80 à 4.92.1 inclusivement, permettant l' exécution de code à distance avec des privilèges privilégiés ( CVE -2019-15846 ).


Vulnérabilité


La vulnérabilité est présente lors de l'utilisation des bibliothèques GnuTLS et OpenSSL lors de l'établissement d'une connexion TLS sécurisée.


Selon le développeur Heiko Schlittermann, le fichier de configuration dans Exim n'utilise pas TLS par défaut, cependant, de nombreuses distributions créent les certificats nécessaires lors de l'installation et incluent une connexion sécurisée. Les versions plus récentes d'Exim définissent également l'option tls_advertise_hosts = * et génèrent les certificats nécessaires.


dépend de la configuration. La plupart des distributions l'activent par défaut, mais Exim a besoin d'un certificat + clé pour fonctionner comme un serveur TLS. Les Distros créent probablement un Cert lors de l'installation. Les nouveaux Exims ont l'option tls_advertise_hosts par défaut à "*" et créent un certificat auto-signé, si aucun n'est fourni.

La vulnérabilité elle-même consiste en un traitement SNI incorrect (Server Name Indication, une technologie introduite en 2003 dans la RFC 3546 pour qu'un client demande un certificat valide pour un nom de domaine, Distribution de la norme TLS SNI / Blog de la société WEBO Group / Habr ) lors d'une prise de contact TLS. Il suffit à l'attaquant d'envoyer un SNI se terminant par une barre oblique inverse ("\") et un caractère nul ("\ 0").


Les chercheurs de Qualys ont trouvé un bogue dans la fonction string_printing (tls_in.sni), qui est l'échappement incorrect "\". Par conséquent, la barre oblique inverse est écrite sous forme non échappée dans le fichier d'en-tête de la bobine d'impression. De plus, ce fichier avec des droits privilégiés est lu par la fonction spool_read_header (), ce qui entraîne un débordement de tas.


Il convient de noter qu'à l'heure actuelle, les développeurs Exim ont créé des vulnérabilités PoC avec l'exécution de commandes sur un serveur vulnérable distant, mais il n'est pas encore accessible au public. En raison de la facilité d'utilisation du bogue, ce n'est qu'une question de temps, et assez courte.


Une étude plus détaillée de Qualys est disponible ici .


Utilisation de SNI dans TLS


Utilisation de SNI dans TLS


Nombre de serveurs publics potentiellement vulnérables


Selon les statistiques d'un grand hébergeur E-Soft Inc, au 1er septembre, la version 4.92 est utilisée sur plus de 70% des hôtes sur des serveurs loués.


La versionNombre de serveursPourcent
4.92.164711,28%
4,9237643674,22%
4,915817911,47%
4.957321,13%
4,89107002,11%
4,87141772,80%
4,8499371,96%
Autres versions255685,04%

Statistiques sur la société E-Soft Inc


Si vous vous tournez vers le moteur de recherche Shodan , alors à partir de 5 250 000 dans la base de données du serveur:


  • environ 3 500 000 utilisent Exim 4.92 (environ 1 380 000 utilisent SSL / TLS);
  • plus de 74 000 utilisent 4.92.1 (environ 25 000 utilisent SSL / TLS).

Ainsi, il existe environ 1,5 million de serveurs Exim potentiellement vulnérables et connus du public.


Trouver des serveurs Exim à Shodan


Trouver des serveurs Exim à Shodan


La protection


  • L'option la plus simple, mais non recommandée, est de ne pas utiliser TLS, ce qui entraînera le transfert des e-mails en texte clair.
  • Pour éviter l'exploitation de la vulnérabilité, il sera plus préférable de passer à Exim Internet Mailer 4.92.2 .
  • S'il n'est pas possible de mettre à niveau ou d'installer la version corrigée, vous pouvez définir la liste de contrôle d'accès dans la configuration Exim pour l'option acl_smtp_mail avec les règles suivantes:

    # 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/fr467089/


All Articles