Налична е коригираща версия OpenSSH 9.9p2, в която са отстранени две уязвимости, открити от компанията Qualys. Демонстриран е пример за приложение на тези уязвимости за извършване на MITM атака, която позволява при опит за свързване на клиента с SSH сървър, да се пренасочи трафикът към собствен фалшив сървър, да се заобиколи проверката на хостовите ключове и да се създаде у клиента впечатление за свързване с желан сървър (ssh клиентът приема хостовия ключ на фалшивия сървър вместо ключа на легитимния сървър).
Първата уязвимост (CVE-2025-26465) е резултат от логическа грешка в утилитата ssh, която позволява заобикаляне на проверката на идентификацията на сървъра и извършване на MITM атака. Проблемът се проявява от версия OpenSSH 6.8p1 (декември 2014 г.) при конфигурации с активирана настройка VerifyHostKeyDNS. В основната версия на OpenSSH тази опция по подразбиране е изключена, но до март 2023 г. беше активирана в настройките на ssh във FreeBSD.
Същността на проблема е, че в кода на функцията verify_host_key_callback() при извикване на функцията verify_host_key() се проверява само кодът на грешка «-1», а други кодове, като «-2», се игнорират. В резултат функцията verify_host_key_callback() може да върне успешен код «0», въпреки че функцията verify_host_key() е върнала грешка «-2». Кодът на грешка «-2» се връща от функцията verify_host_key() при недостиг на памет. Ако бъдат създадени условия, при които не може да се задели памет в функцията verify_host_key(), SSH ще сметне, че хостовият ключ е проверен успешно. За създаване на такива условия, подставният SSH сървър на атакуващия, към който е пренасочен клиентът, връща хостовия ключ с максимално възможен размер (256KB), и в същото време се експлоатира изтичането на памет на страната на ssh клиента.
Условията за създаване на изтичане на памет се постигат благодарение на втората уязвимост (CVE-2025-26466), която засяга както клиента ssh, така и сървър sshd, и се експлоатира без автентикация. Уязвимостта позволява да се изчерпи наличната памет на процеса и да се създаде високо натоварване на CPU чрез изпращане на голямо количество пакети SSH2_MSG_PING. В обработчика на пакети SSH2_MSG_PING има изтичане на памет, което се проявява от версия OpenSSH 9.5p1 (август 2023 г.). Изтичането възниква, защото за всеки постъпващ 16-байтов PING пакет се заделя 256-байтов буфер за формулиране на отговор, но този буфер се освобождава само след завършване на споразумението за ключовете. Като заобиколно решение на защитата се предлага да се настроят ограничения с помощта на директиви LoginGraceTime, MaxStartups и PerSourcePenalties.
Източник: opennet.ru
