Dans la bibliothèque libssh (à ne pas confondre avec libssh2), conçue pour ajouter un support client et serveur du protocole SSHv2 aux programmes en langage C, une vulnérabilité (CVE-2021-3634) a été identifiée, entraînant un dépassement de tampon lors de l'initialisation du processus de changement de clé (rekey) en utilisant un mécanisme d'échange de clés qui applique un autre algorithme de hachage. Le problème a été corrigé dans la version 0.9.6.
La nature du problème est que l'opération de changement de clé permet d'utiliser des hachages cryptographiques avec une taille de tampon différente de celle de l'algorithme initialement utilisé. De ce fait, la mémoire allouée pour le hachage dans libssh était basée sur la taille initiale et l'utilisation d'un hachage de plus grande taille entraîne l'écriture de données en dehors du tampon alloué. Comme méthode de protection alternative, vous pouvez restreindre la liste des méthodes d'échange de clés uniquement aux algorithmes ayant la même taille de hachage. Par exemple, pour se lier à SHA256, vous pouvez ajouter dans le code : rc = ssh_options_set(s->ssh.session, SSH_OPTIONS_KEY_EXCHANGE, "diffie-hellman-group14-sha256,curve25519-sha256,ecdh-sha2-nistp256");
Source : opennet.ru
