Russh — это клиентская и серверная библиотека Rust SSH. Начиная с версии 0.34.0 и до версии 0.61.1, когда включено сжатие SSH, russh принимал сжатые пакеты, размер проводной передачи которых прошел обычные проверки длины транспортного пакета, но чей распакованный размер был намного больше. Это позволило удаленному узлу отправлять пакеты после декомпрессии слишком большого размера, которые должны были быть отклонены.
В текущих выпусках это проблема удаленного отказа в обслуживании или исчерпания ресурсов на пути приема после декомпрессии. В более старых версиях до 0.58.0 тот же путь удаленной распаковки использовал CryptoVec, что, по-видимому, еще больше ухудшало историческое воздействие. Эта проблема исправлена в версии 0.61.1.
Показать оригинальное описание (EN)
Russh is a Rust SSH client & server library. From version 0.34.0 to before version 0.61.1, when SSH compression is enabled, russh accepted compressed packets whose on-wire size passed the normal transport packet-length checks but whose decompressed size was much larger. This allowed a remote peer to send oversized post-decompression packets that should have been rejected. In current releases, this is a remote denial-of-service / resource-exhaustion issue in the post-decompression receive path. In older releases before 0.58.0, the same remote decompression path used CryptoVec, which appears to make the historical impact worse. This issue has been patched in version 0.61.1.
Характеристики атаки
Последствия
Строка CVSS v3.1