Уразлівасць у 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

Дадаць каментар