UltraVNC repeater through 1.8.2.2 contains a global buffer overflow in its embedded HTTP administration server. The functions wi_senderr() and wi_replyhdr() in repeater/webgui/webutils.c write the caller-supplied HTTP request URI into a fixed 1000-byte global buffer (hdrbuf) via unchecked sprintf calls. The HTTP receive buffer accepts URIs up to approximately 150 KB (WI_RXBUFSIZE = 153600), so an unauthenticated attacker who can reach the repeater HTTP port (default TCP 80) can overflow hdrbuf by at least 500 bytes with a single HTTP request containing a URI of 1500 bytes or longer, corrupting adjacent .bss-segment globals. The overflow occurs before any authentication check, making it reachable without credentials. A remote, unauthenticated attacker can achieve arbitrary code execution on the host running the repeater.
The functions wi_senderr() and wi_replyhdr() in the file repeater/webgui/webutils.c copy the URI identifier from an HTTP request into a fixed, global buffer hdrbuf of 1000 bytes in size using an unsafe sprintf() call — without checking input length. The HTTP receive buffer accepts URIs up to approximately 150 KB in length (WI_RXBUFSIZE = 153600), so a URI of 1500 bytes or longer causes a buffer overflow of at least 500 bytes, overwriting adjacent global variables in the .bss segment. The overflow occurs before any authentication verification is performed, making the vulnerability accessible without any credentials through the default TCP port 80.
A remote, unauthenticated attacker can gain arbitrary code execution (RCE) capability on a host running the UltraVNC Repeater process, leading to complete system compromise.
Security patches available from the vendor should be applied according to the references (https://uvnc.com/ and https://github.com/ultravnc/UltraVNC). Until patches are applied, it is recommended to restrict access to the HTTP repeater port (default TCP 80) exclusively to trusted IP addresses using a firewall or ACL rules, and consider disabling the built-in HTTP administrative interface if it is not essential.
UltraVNC Repeater version 1.8.2.2 and earlier
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XUvnc Ultravnc
APPUvnc≤ 1.8.2.2
Related vulnerabilities
UltraVNC Repeater — hardcoded domyślne hasło administratora HTTP
UltraVNC: wielokrotne podatności off-by-one umożliwiające RCE
UltraVNC: podatność out-of-bounds w dekoderze Ultra2 klienta VNC (RCE)
UltraVNC – wielokrotne odczyty/zapisy poza buforem przez makro SETPIXELS
UltraVNC: wielokrotny out-of-bounds access umożliwiający RCE w kliencie VNC