Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Successful auth bypass grants full desktop visibility and control (C:H/I:H); AC:H retained because attacker must observe a live challenge exchange to enumerate the seed.
Primary rating from Vendor (securin).
CVSS VectorNVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Lifecycle Timeline
3DescriptionNVD
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.
AnalysisAI
UltraVNC through 1.8.2.2 exposes a cryptographically weak VNC authentication challenge generator that an attacker can predict by observing network traffic and enumerating a roughly 31-bit seed space derived from wall-clock time and process ID. Successful seed reconstruction allows the attacker to forge or brute-force valid VNC authentication responses, effectively bypassing the RFB challenge-response mechanism and gaining unauthorized remote desktop access. No public exploit has been identified at time of analysis, and the vulnerability is not currently listed in the CISA KEV catalog; however, the mathematical basis for exploitation is straightforward given the small seed space.
Technical ContextAI
The vulnerability is in rfb/vncauth.c lines 119-129, where vncRandomBytes() seeds libc's rand() using time(0) + getpid() + rand(). The combined effective entropy is approximately 31 bits - both seed components (wall-clock seconds and process ID) are publicly observable, reducing the challenge generation to a deterministic, enumerable function. The VNC RFB protocol's security type 2 (VNC Authentication) transmits a 16-byte nonce challenge in cleartext; that nonce is then encrypted with the DES-based VNC password and returned by the client. If the nonce is predictable, the entire challenge-response scheme collapses. CWE-338 (Use of Cryptographically Weak Pseudo-Random Number Generator) is the precise root cause class - rand() is explicitly not suitable for cryptographic nonce generation. CPE cpe:2.3:a:uvnc:ultravnc:*:*:*:*:*:*:*:* covers all versions through 1.8.2.2. A significant open question per the CVE description is whether shipped Windows binaries actually reach vncauth.c or instead execute vncEncryptBytes2.cpp, which calls CryptGenRandom - a cryptographically secure Windows API - making the Windows code path exposure unconfirmed.
RemediationAI
No vendor-released patch has been identified at time of analysis - the available references point only to the vendor homepage (https://uvnc.com/) and the GitHub repository (https://github.com/ultravnc/UltraVNC) without specifying a fixed release version. Monitor the repository for commits addressing vncRandomBytes() in rfb/vncauth.c. As the primary compensating control, place UltraVNC behind a VPN or SSH tunnel so that the cleartext RFB authentication exchange is not observable by third parties - this directly eliminates the network observation prerequisite encoded in the CVSS AC:H metric. Alternatively, use SSH port forwarding to wrap VNC traffic, preventing passive capture of the challenge-response exchange. Restrict VNC port exposure at the firewall to trusted source IPs only, reducing the attacker's ability to position for traffic observation. Organizations unable to apply network-layer controls should evaluate migration to remote desktop solutions using cryptographically strong authentication (e.g., protocols seeded with OS-level CSPRNG). Each mitigating control trades operational access convenience for reduced exposure; VPN/SSH tunneling is the most robust option with minimal side effects.
UltraVNC Launcher 1.2.4.0 contains a denial of service vulnerability in the Repeater Host configuration field that allow
UltraVNC versions up to 1.6.4.0 suffer from an uncontrolled search path vulnerability in version.dll loaded by the Servi
UltraVNC Launcher 1.2.4.0 contains a denial of service vulnerability in its password configuration properties that allow
UltraVNC revision 1203 has out-of-bounds access vulnerability in VNC client inside RAW decoder, which can potentially re
UltraVNC revision 1211 has multiple improper null termination vulnerabilities in VNC server code, which result in out-of
UltraVNC revision 1211 has a heap buffer overflow vulnerability in VNC server code inside file transfer offer handler, w
UltraVNC revision 1211 has a heap buffer overflow vulnerability in VNC server code inside file transfer request handler,
UltraVNC revision 1211 has multiple off-by-one vulnerabilities in VNC server code, which can potentially result in code
UltraVNC revision 1211 has a heap buffer overflow vulnerability in VNC server code inside file transfer handler, which c
UltraVNC revision 1206 has multiple off-by-one vulnerabilities in VNC client code connected with improper usage of Clien
UltraVNC revision 1207 has multiple out-of-bounds access vulnerabilities connected with improper usage of ClientConnecti
UltraVNC revision 1207 has multiple out-of-bounds access vulnerabilities connected with improper usage of SETPIXELS macr
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-40879
GHSA-j37g-g7hg-vhg6