UltraVNC viewer off-by-one stack overflow in ServerInit desktop name parsing
UltraVNC viewer through 1.8.2.2 contains an off-by-one stack buffer overflow in the RFB ServerInit message handler. In vncviewer/ClientConnection.cpp, when the server-supplied nameLength equals exactly 2024 the code declares a 2024-byte stack buffer _dn[2024] and calls ReadString(_dn, 2024). ReadString writes the NUL terminator at buf[length], i.e., _dn[2024], one byte past the end of the stack buffer. A malicious VNC server can trigger this condition by advertising a desktop name of length 2024 in its ServerInit message. On release builds without stack canaries the single-byte NUL overwrite adjacent stack data. On builds with /GS stack protection the canary is corrupted and the process terminates, resulting in denial of service. User interaction (connecting the viewer to the malicious server) is required.
Problem Types
| Type | CWE ID | Description |
|---|
| CWE | CWE-193 | Off-by-one Error |
| CWE | CWE-787 | Out-of-bounds Write |
Type: CWE
Description: Off-by-one Error
Type: CWE
Description: Out-of-bounds Write
Metrics
| Version | Base score | Base severity | Vector |
|---|
| 3.1 | 7.5 | HIGH | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:H |
Version: 3.1
Base score: 7.5
Base severity: HIGH
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:H
Timeline
| Event | Date |
|---|
| Vulnerability discovered during security audit | 2026-06-02 00:00:00 |
| Reported to vendor (coordinated disclosure) | 2026-06-17 00:00:00 |
| Planned public disclosure (90-day window) | 2026-09-15 00:00:00 |
Event: Vulnerability discovered during security audit
Date: 2026-06-02 00:00:00
Event: Reported to vendor (coordinated disclosure)
Date: 2026-06-17 00:00:00
Event: Planned public disclosure (90-day window)
Date: 2026-09-15 00:00:00