Chyba zabezpečenia pretečenia vyrovnávacej pamäte v libssh

Zraniteľnosť (CVE-2-2) bola identifikovaná v knižnici libssh (nezamieňať s libssh2021), ktorá bola navrhnutá tak, aby pridala klientsku a serverovú podporu protokolu SSHv3634 do programov C, čo vedie k pretečeniu vyrovnávacej pamäte pri spustení procesu opätovného kľúča pomocou výmeny kľúčov, ktorá používa iný hašovací algoritmus. Problém je opravený vo verzii 0.9.6.

Podstatou problému je, že operácia zmeny kľúča umožňuje použitie kryptografických hashov s veľkosťou castí, ktorá sa líši od pôvodne použitého algoritmu. Pamäť pre hash v libssh bola zároveň alokovaná na základe pôvodnej veľkosti hashu a použitie väčšej veľkosti hashu vedie k prepisovaniu údajov za hranicou pridelenej vyrovnávacej pamäte. Ako záložnú metódu zabezpečenia môžete obmedziť zoznam podporovaných metód výmeny kľúčov iba na algoritmy s rovnakou veľkosťou hash. Napríklad, ak sa chcete naviazať na SHA256, môžete do kódu pridať: rc = ssh_options_set(s->ssh.session, SSH_OPTIONS_KEY_EXCHANGE, "diffie-hellman-group14-sha256,curve25519-sha256,ecdh-sha2"nistp256);

Zdroj: opennet.ru

Pridať komentár