Разработчики PuTTY предупреждаюто критической уязвимости, затрагивающей версии от 0.68 до 0.80. Недостаток может позволить злоумышленнику полностью восстановить приватные ключи NIST-P521.
Уязвимость CVE-2024-31497возникает из-за сбоев в генерации криптографических одноразовых номеров ECDSA ( Cryptographic nonce ), что и позволяет восстановить приватные ключи. Открытие ошибки приписывают исследователям Фабиану Боймеру и Маркусу Бринкманну из Рурского университета в Бохуме
Первые 9 бит каждого одноразового номера ECDSA равны нулю, что позволяет полностью восстановить секретный ключ примерно по 60 подписям с использованием самых современных методов.
Атакующему, владеющему несколькими десятками подписанных сообщений и публичным ключом, хватит данных для восстановления приватного ключа и подделки подписей, что может привести к несанкционированному доступу к серверам и сервисам, использующим данный ключ.
Проблема также коснулась других продуктов, интегрированных с уязвимыми версиями PuTTY:
- FileZilla (3.24.1 – 3.66.5);
- WinSCP (5.9.5 – 6.3.2);
- TortoiseGit (2.4.0.2 – 2.15.0);
- TortoiseSVN (1.10.0 – 1.14.6).
После ответственного раскрытия информации, в новых версиях PuTTY 0.81, FileZilla 3.67.0, WinSCP 6.3.3 и TortoiseGit 2.15.0.1 проблема была устранена. Разработчики продуктов использовали технику RFC 6979 для генерации всех типов ключей DSA и ECDSA, отказавшись от предыдущего метода.
Пользователям TortoiseSVN рекомендуется использовать Plink из последнего релиза PuTTY 0.81 при доступе к SVN-репозиториям через SSH до выпуска обновления.
Ключи ECDSA NIST-P521, использовавшиеся в любом из уязвимых компонентов, следует считать скомпрометированными и немедленно отозвать, удалив их из файлов “~/.ssh/authorized_keys” и аналогичных на других SSH-серверах.