Вразливість у libssh, що призводить до переповнення буфера

У бібліотеці 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

Додати коментар або відгук