I libssh-biblioteket (ikkje forveksla med libssh2), som er utvikla for å legge til klient- og serverstøtte for SSHv2-protokollen i C-program, er det oppdaga ei sårbarheit (CVE-2021-3634) som fører til bufferoverløp når prosessen for nøkkelskifte (rekey) startast med bruk av ein nøkkelutvekslingsmekanisme som bruker ein annan hashing-algoritme. Problemet er retta i utgåve 0.9.6.
Problemet er at operasjonen for nøkkelskifte tillét bruk av kryptografiske hashes med størrelsar som er forskjellige frå den opprinneleg brukte algoritmen. Minne for hash i libssh vart allokert ut frå den opprinnelege størrelsen på hashen, og bruken av ein større hash fører til at data vert overskriven utanfor det allokerte bufferen. Som ein alternativ sikringsmetode kan ein begrense lista over støttede nøkkelkryssingsmetodar til algoritmar med lik hash-størrelse. For eksempel, for å binde til SHA256 kan ein legge til i koden: rc = ssh_options_set(s->ssh.session, SSH_OPTIONS_KEY_EXCHANGE, "diffie-hellman-group14-sha256,curve25519-sha256,ecdh-sha2-nistp256");
Kilde: opennet.ru
