🇰🇷 한글 설명
SSH.NET 라이브러리의 ScpClient.Download 메서드에서 원격 SCP 서버가 반환하는 파일 및 디렉토리 이름을 검증 없이 신뢰하여 발생하는 취약점입니다. 공격자가 상위 디렉토리 이동 시퀀스(..) 또는 절대 경로를 사용하여 클라이언트 프로세스가 쓰기 권한을 가진 임의의 위치에 파일을 생성하거나 덮어쓸 수 있습니다.
💡 쉬운 설명
해킹된 서버가 파일을 보낼 때 파일 이름에 '함정 경로'를 섞어 보내면, 내 컴퓨터의 엉뚱한 곳에 중요한 파일이 저장되거나 덮어씌워질 수 있는 문제입니다. 이를 통해 시스템 설정이 망가지거나 악성 코드가 심어질 위험이 있습니다.
🇺🇸 원문 (English)
SSH.NET is a Secure Shell (SSH) library for .NET. In 2025.1.0 and earlier, ScpClient.Download(string directoryName, DirectoryInfo directoryInfo) trusts file and directory names returned by a remote SCP server and combines them with the requested local directory without containment validation, allowing a malicious, compromised, or man-in-the-middle server to use ../ sequences or absolute paths to create or overwrite files anywhere writable by the client process. This issue is fixed in version 2026.0.0.
📍 영향받는 시스템
SSH.NET version 2025.1.0 and earlier
⚔️ 공격 벡터
악의적인 또는 탈취된 SCP 서버가 조작된 파일 경로(../ 또는 절대 경로)를 응답하여 클라이언트의 파일 쓰기 동작을 유도함
🛡️ 대응 방법
SSH.NET 라이브러리를 버전 2026.0.0 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 SSH.NET의 버전이 2026.0.0 미만인지 확인하십시오.
dotnet list package | grep SSH.NET