Vulnerability Description
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.
CVSS Score
MEDIUM
Affected Products
| Vendor | Product | Versions |
|---|---|---|
| Uvnc | Ultravnc | <= 1.8.2.2 |
Related Weaknesses (CWE)
References
- https://github.com/ultravnc/UltraVNCProduct
- https://uvnc.com/ProductRelease Notes
- https://www.securin.io/zero-days/cve-2026-44040-libc-rand-weak-rng-vnc-auth-chal
FAQ
What is CVE-2026-44040?
CVE-2026-44040 is a vulnerability with a CVSS score of 4.8 (MEDIUM). 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 ...
How severe is CVE-2026-44040?
CVE-2026-44040 has been rated MEDIUM with a CVSS base score of 4.8/10. Review the CVSS metrics above for detailed severity breakdown.
Is there a patch for CVE-2026-44040?
Check the references section above for vendor advisories and patch information. Affected products include: Uvnc Ultravnc.