🇰🇷 한글 설명
Russh 라이브러리(버전 0.34.0-beta.1부터 0.61.0 이전)는 SSH 식별 문자열 규칙을 엄격하게 검증하지 않아, 공격자가 초기 연결 단계에서 리소스를 고갈시킬 수 있는 취약점이 존재합니다. 이 문제는 서버 측이 클라이언트의 비정상적인 입력을 조기에 거부하지 못해 연결 설정 자원이 장시간 점유되는 원인이 됩니다. 해당 취약점은 버전 0.61.0에서 수정되었습니다.
💡 쉬운 설명
Russh 라이브러리의 이전 버전은 SSH 연결 초기 단계의 입력값을 제대로 검사하지 않아, 악의적인 사용자가 서버의 자원을 고의로 소모할 수 있습니다. 이 문제를 해결하려면 Russh 라이브러리를 최신 버전으로 업데이트해야 합니다.
🇺🇸 원문 (English)
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.
📍 영향받는 시스템
Russh SSH 라이브러리 버전 0.34.0-beta.1 이상 0.61.0 미만
⚔️ 공격 벡터
원격에서 비정상적인 SSH 식별 문자열을 전송하여 서버의 연결 설정 자원을 고갈시킴
🛡️ 대응 방법
Russh 라이브러리를 보안이 패치된 버전 0.61.0 이상으로 업그레이드
🔧 검증 코드
출력된 버전 번호가 0.61.0 이상이어야 안전하며, 0.61.0 미만이면 취약합니다.
cargo tree -p russh 2>/dev/null | grep 'russh v'