Уязвимост в libssh, водеща до препълване на буфера

В библиотеката libssh (не я бъркайте с libssh2), предназначена за добавяне на клиентска и сървърна поддръжка на протокола SSHv2 в програми на езика C, е открита уязвимост (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

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster