🇰🇷 한글 설명
UltraVNC 1.8.2.2 이하 버전에서 암호학적으로 취약한 의사 난수 생성기를 사용하여 VNC 인증 챌린지 바이트를 생성하는 문제가 발견되었습니다. 공격자가 공개적으로 관찰 가능한 값(시간 및 프로세스 ID)을 이용해 난수 시드를 예측함으로써 인증 과정을 우회하거나 응답을 위조할 수 있습니다.
💡 쉬운 설명
로그인할 때 사용하는 암호화용 무작위 숫자가 예측 가능한 방식으로 만들어지는 보안 결함입니다. 해커가 이 숫자를 미리 알아내면 사용자의 비밀번호를 몰라도 가짜 인증 정보를 만들어 접속할 수 있습니다.
🇺🇸 원문 (English)
UltraVNC through 1.8.2.2 uses a cryptographically weak pseudo-random number generator to produce VNC authentication challenge bytes. In rfb/vncauth.c:119-129, the vncRandomBytes() function seeds libc rand() with time(0) + getpid() + rand() and generates a 16-byte challenge. The combined seed space is approximately 31 bits (libc rand() internal state) and is entirely determined by publicly-observable values (wall-clock time and process ID). An attacker who can observe the authentication exchange can enumerate the seed space and predict the challenge within seconds, enabling forgery or offline brute-forcing of responses. Note: on Windows, the active code path may use vncEncryptBytes2.cpp which calls CryptGenRandom; reachability on shipped Windows binaries requires compile-graph verification and is under investigation.
📍 영향받는 시스템
UltraVNC 1.8.2.2 및 그 이전 버전
⚔️ 공격 벡터
네트워크 인증 교환 과정을 관찰하여 예측 가능한 난수 시드를 계산한 뒤 인증 응답을 위조함
🛡️ 대응 방법
최신 보안 패치가 적용된 버전으로 업데이트하거나, Windows 환경의 경우 CryptGenRandom을 사용하는 안전한 경로가 적용되었는지 확인하십시오.
🔧 검증 코드
출력된 버전 번호가 1.8.2.2 이하인지 확인하십시오.
ultraVNC --version 2>/dev/null || powershell "(Get-ItemProperty 'HKLM:\SOFTWARE\UltraVNC\*').Version"
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
💻 영향받는 소프트웨어
Storage Protect Snapshot for Windows