Вышла новая версия популярного SSH-клиента PuTTY - 0.84. Разработчики устранили три уязвимости, которые хотя и признаны незначительными по степени серьёзности, затрагивают ключевые компоненты продукта: обмен ключами по протоколу SSH и обработку Telnet-сессий. Для пользователей, которые полагаются на PuTTY для удалённого доступа к серверам, обновление остаётся важным - особенно если они работают через небезопасные сети.
Детали уязвимостей
Первая уязвимость связана с эллиптической криптографией, используемой при обмене ключами в SSH. Ошибка заключается в проверке подписи ECDSA - алгоритма цифровой подписи на основе эллиптических кривых. В коде присутствует оператор утверждения, который срабатывает при сложении двух точек кривой с одинаковой координатой Y. На самом деле такая операция допустима и не должна приводить к аварийному завершению. Злоумышленник, действующий по схеме "человек посередине" (MITM), может отправить специально сформированный ключ хоста и подпись во время начального этапа соединения. PuTTY проверяет подпись до того, как сверит ключ с кэшем, поэтому клиент упадёт ещё до того, как появится предупреждение о неверном ключе. Атака приводит к отказу в обслуживании (DoS), но не к утечке данных или выполнению вредоносного кода. Однако из-за краха сессии можно потерять несохранённые данные в терминале. Уязвимость затрагивает кривые NIST: P-256, P-384 и P-521. Современные кривые Ed25519 не подвержены проблеме.
Вторая уязвимость касается реализации обмена ключами по RSA (RSA KEX). Эта опция используется редко, но присутствует в PuTTY начиная с версии 0.72. Ошибка типа double-free - двойное освобождение памяти - возникает, если вредоносный сервер присылает намеренно короткий RSA-ключ во время рукопожатия. В нормальном режиме обмена баг не проявляется, только на пути обработки ошибочной ситуации. Двойное освобождение считается рискованным, поскольку может привести к повреждению памяти, хотя на практике разработчики не нашли способа использовать эту уязвимость для чего-то большего, чем краш приложения. Атака возможна со стороны MITM на этапе до проверки ключа хоста.
Третья проблема связана с механизмом "доверительного значка" (trust sigil) - маленькой иконки PuTTY, которая отображается слева от строки приглашения во время начальной аутентификации. Этот значок призван отличать настоящие запросы от поддельных, которые может сгенерировать сервер (например, запрос пароля от SSH-ключа). Однако в версиях с 0.77 и до 0.83 при использовании Telnet через прокси доверительный статус не сбрасывался после завершения аутентификации на прокси. В результате все последующие данные сессии отображались с доверительным значком. Злоумышленник, управляющий Telnet-сервером (или MITM), может сразу после логина показать поддельный запрос пароля от прокси - и пользователь, видя значок, может его ввести. Хотя Telnet сам по себе небезопасен, эта уязвимость подрывает визуальный защитный механизм.
Дополнительно в релизе исправлена ошибка, которой присвоен CVE-2026-4115 и которая касается обработки подписей EdDSA. Поддерживающий разработчик PuTTY считает, что этот дефект не представляет реальной угрозы.
Несмотря на низкий уровень опасности, все три уязвимости могут быть использованы удалённо. Самая серьёзная - потеря данных из-за краха клиента при первой ошибке. Хотя злоумышленник не получит доступ к системе, отказ в обслуживании и возможность фишинга через подделку приглашений в Telnet - достаточный повод для обновления.
Пользователям настоятельно рекомендуется обновиться до PuTTY 0.84. Кроме того, стоит придерживаться базовых правил безопасности: не использовать устаревшие протоколы вроде Telnet, отключать ненужные методы обмена ключами (например RSA KEX) и отслеживать сбои SSH-соединений, которые могут указывать на попытки эксплуатации. Обновление доступно на официальном сайте проекта.
Ссылки
- https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
- https://www.openwall.com/lists/oss-security/2026/05/24/11