Chyba zabezpečení při přetečení vyrovnávací paměti v libssh

V knihovně libssh (nezaměňovat s libssh2) byla identifikována zranitelnost (CVE-2-2021), která má přidat klientskou a serverovou podporu protokolu SSHv3634 do programů C, což vede k přetečení vyrovnávací paměti při zahájení procesu opětovného klíče. pomocí výměny klíčů, která používá jiný hashovací algoritmus. Problém je opraven ve verzi 0.9.6.

Podstata problému spočívá v tom, že operace změny klíče umožňuje použití kryptografických hashů s velikostí obsazení, která se liší od původně použitého algoritmu. V tomto případě byla paměť pro hash v libssh alokována na základě původní velikosti hash a použití větší velikosti hash vede k přepsání dat za hranicí přidělené vyrovnávací paměti. Jako záložní metodu zabezpečení můžete omezit seznam podporovaných metod výměny klíčů pouze na algoritmy se stejnou velikostí hash. Například pro vazbu na SHA256 můžete do kódu přidat: rc = ssh_options_set(s->ssh.session, SSH_OPTIONS_KEY_EXCHANGE, "diffie-hellman-group14-sha256,curve25519-sha256,ecdh-sha2"nistp256);

Zdroj: opennet.ru

Přidat komentář