libssh 中的緩衝區溢位漏洞

libssh 庫(不要與libssh2 混淆)中已發現一個漏洞(CVE-2-2021),該漏洞旨在向C 程式添加對SSHv3634 協議的客戶端和伺服器支持,從而在啟動重新生成密鑰過程時導致緩衝區溢位使用使用不同雜湊演算法的金鑰交換。 該問題已在 0.9.6 版本中修復。

問題的本質是密鑰更改操作允許使用與最初使用的演算法不同的強制轉換大小的加密雜湊。 同時,libssh中的哈希記憶體是根據原始哈希大小分配的,使用較大的哈希大小會導致資料被覆蓋超出分配的緩衝區邊界。 作為後備安全方法,您可以將支援的金鑰交換方法清單限制為僅具有相同雜湊大小的演算法。 例如,要綁定到 SHA256,您可以在程式碼中新增: rc = ssh_options_set(s->ssh.session, SSH_OPTIONS_KEY_EXCHANGE, "diffie-hellman-group14-sha256,curve25519-sha256,ecdh-sha2」

來源: opennet.ru

添加評論