problème
Le code appelant string_interpret_escape() alloue un tampon pour le drain en fonction de la taille réelle, et le pointeur exposé se retrouve dans une zone en dehors des limites du tampon. Par conséquent, lorsque vous essayez de traiter une chaîne d'entrée, une situation se produit lors de la lecture de données à partir d'une zone en dehors des limites du tampon alloué, et une tentative d'écriture d'une chaîne non échappée peut conduire à une écriture au-delà des limites du tampon.
Dans la configuration par défaut, la vulnérabilité peut être exploitée en envoyant des données spécialement conçues à SNI lors de l'établissement d'une connexion sécurisée au serveur. Le problème peut également être exploité en modifiant les valeurs peerdn dans les configurations configurées pour l'authentification des certificats clients ou lors de l'importation de certificats. L'attaque via SNI et peerdn est possible à partir de la version
Un prototype d'exploit a été préparé pour une attaque via SNI, fonctionnant sur les architectures i386 et amd64 sur les systèmes Linux avec Glibc. L'exploit utilise la superposition de données sur la zone de tas, ce qui entraîne l'écrasement de la mémoire dans laquelle le nom du fichier journal est stocké. Le nom du fichier est remplacé par "/../../../../../../../../etc/passwd". Ensuite, la variable avec l'adresse de l'expéditeur est écrasée, qui est d'abord enregistrée dans le journal, ce qui vous permet d'ajouter un nouvel utilisateur au système.
Mises à jour de packages avec correctifs de vulnérabilités publiés par les distributions
Pour contourner la vulnérabilité, vous pouvez désactiver la prise en charge de TLS ou ajouter
Section ACL « acl_smtp_mail » :
condition de refus = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
condition de refus = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}
Source: opennet.ru