Разработчики PuTTY выпустили обновление, исправляющее криптографическую уязвимость CVE-2024-31497, затрагивающую версии с 0.68 по 0.80. Сообщается, что проблему можно использовать для полного восстановления приватных ключей NIST P-521 (ecdsa-sha2-nistp521).
Thank you for reading this post, don't forget to subscribe!Уязвимость была обнаружена специалистами из Рурского университета в Бохуме и связана с тем, как PuTTY генерирует ECDSA nonce (временные уникальные криптографические числа) для эллиптической кривой NIST P-521, используемой для SSH-аутентификации. Ошибка возникает в силу того, что PuTYY использует детерминированный способ генерации таких чисел, чтобы компенсировать отсутствие надежного криптографического генератора случайных чисел в определенных версиях Windows.
Исследователи объясняют, что цифровая подпись создается с помощью приватного ключа пользователя и проверяется с помощью соответствующего публичного ключа на сервере, обеспечивая идентификацию и безопасность коммуникаций.
Злоумышленникам потребуется изучить порядка 58 подписей для вычисления приватного ключа жертвы. Атакующие могут получить подписи либо путем их сбора с SSH-сервера, который они контролируют или взломали, либо извлечь их из подписанных коммитов Git.
По словам экспертов, сбор подписей из публичных коммитов может оказаться гораздо более эффективен и опасен. Так, обычно для подписания коммитов локально используется Pageant, SSH-агент PuTTY, а затем осуществляется пересылка на хост разработчики. Git настраивается на использование OpenSSH для подписания Git-коммитов с помощью SSH-ключа, предоставленного Pageant. То есть подпись генерируется Pageant, что делает ее пригодной для восстановления приватного ключа. А Git-подписи могут быть общедоступны, например, если коммит присутствует в публичном репозитории на GitHub.
Разработчики устранили уязвимость в PuTTY 0.81, где перешли на RFC 6979 для всех ключей DSA и ECDSA. Подчеркивается, что все приватные ключи P-521, сгенерированные с помощью уязвимой версии PuTTY, следует считать небезопасными и их нужно как можно скорее заменить на новые.
Известно, что уязвимую версию PuTTY, используют следующие продукты:
- FileZilla 3.24.1–3.66.5 (исправлено в версии 3.67.0);
- WinSCP 5.9.5–6.3.2 (исправлено в 6.3.3);
- TortoiseGit 2.4.0.2–2.15.0 (исправлено в 2.15.0.1);
- TortoiseSVN 1.10.0–1.14.6 (исправление возможно при настройке TortoiseSVN на использование Plink в последней версии PuTTY 0.81).
Вероятно, софта, уязвимого перед CVE-2024-31497, может оказаться даже больше (всё зависит от того, какая версия PuTTY используется), поэтому пользователям рекомендуется проверить свои инструменты и при необходимости принять превентивные меры.