🇰🇷 한글 설명
FreeRDP 3.20.0 미만 버전의 Windows 플랫폼에서 인증서 처리 코드의 취약점이 발견되었습니다. Microsoft의 _snprintf 함수가 버퍼 크기 초과 시 NUL 종료 문자를 보장하지 않아, 공격자가 제어하는 호스트네임을 사용할 경우 힙 기반의 경계 외 읽기(Out-of-bounds read)가 발생할 수 있습니다.
💡 쉬운 설명
가짜 서버 주소를 이용해 프로그램이 메모리의 잘못된 부분을 읽게 만드는 보안 약점입니다. 이로 인해 프로그램이 갑자기 종료되거나 시스템의 민감한 정보가 유출될 위험이 있습니다.
🇺🇸 원문 (English)
FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.20.0, a vulnerability exists in FreeRDP’s certificate handling code on Windows platforms. The function `freerdp_certificate_data_hash_ uses` the Microsoft-specific `_snprintf` function to format certificate cache filenames without guaranteeing NUL termination when truncation occurs. According to Microsoft documentation, `_snprintf` does not append a terminating NUL byte if the formatted output exceeds the destination buffer size. If an attacker controls the hostname value (for example via server redirection or a crafted .rdp file), the resulting filename buffer may not be NUL-terminated. Subsequent string operations performed on this buffer may read beyond the allocated memory region, resulting in a heap-based out-of-bounds read. In default configurations, the connection is typically terminated before sensitive data can be meaningfully exposed, but unintended memory read or a client crash may still occur under certain conditions. Version 3.20.0 has a patch for the issue.
📍 영향받는 시스템
FreeRDP 3.20.0 미만 버전 (Windows 플랫폼)
⚔️ 공격 벡터
조작된 .rdp 파일 또는 서버 리디렉션을 통해 악의적인 호스트네임 전달
🛡️ 대응 방법
FreeRDP를 최신 버전인 3.20.0 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 3.20.0 미만인지 확인하십시오.
freerdp --version 2>/dev/null || echo 'FreeRDP not found'