В библиотеката libssh (не трябва да се бърка с libssh2), предназначена за добавяне на клиентска и сървърна поддръжка на протокола SSHv2 в програми на Си, е открита уязвимост (CVE-2021-3634), която води до препълване на буфера при иницииране на процеса на смяна на ключа (rekey) с използването на механизъм за обмен на ключове, който прилага различен алгоритъм за хеширане. Проблемът е решен в версия 0.9.6.
Същността на проблема е, че операцията по смяна на ключа допуска използването на криптографски хешове с размер на щампата, различен от първоначално използвания алгоритъм. При това паметта за хеша в libssh е била заделена на основата на първоначалния размер на хеша и използването на хеш с по-голям размер води до презапис на данни извън рамките на заделената буферна зона. Като резервен метод за защита може да се ограничи списъкът на поддържаните методи за обмен на ключове само до алгоритми с еднакъв размер на хеша. Например, за свързване с SHA256 може да се добави в кода: rc = ssh_options_set(s->ssh.session, SSH_OPTIONS_KEY_EXCHANGE, «diffie-hellman-group14-sha256,curve25519-sha256,ecdh-sha2-nistp256»);
Източник: opennet.ru
