Russh — это клиентская и серверная библиотека Rust SSH. Начиная с версии 0.34.0-beta.1 и до версии 0.61.0, russh не применял правила идентификационной строки SSH так сознательно, как OpenSSH. В частности, считыватель идентификационных данных на стороне сервера использовал тот же разрешительный путь, что и клиент, разрешая строки предварительного баннера от клиентов, а считыватель не навязывал ограниченное количество строк предварительного баннера.
Для библиотечного сервера, построенного на russh, это может позволить удаленному узлу удерживать ресурсы настройки соединения на этапе предварительной аутентификации в виде открытого текста с неверным вводом идентификации, который должен был быть отклонен заранее. Эта проблема исправлена в версии 0.61.0.
Показать оригинальное описание (EN)
Russh is a Rust SSH client & server library. From version 0.34.0-beta.1 to before version 0.61.0, russh did not enforce the SSH identification-string rules as deliberately as OpenSSH. In particular, the server-side identification reader used the same permissive path as the client, allowing pre-banner lines from clients, and the reader did not enforce a bounded number of pre-banner lines. For a library server built on russh, this could allow a remote peer to hold connection setup resources in the cleartext pre-authentication phase with malformed identification input that should have been rejected early. This issue has been patched in version 0.61.0.
Характеристики атаки
Последствия
Строка CVSS v3.1