CVE-2026-7831 PUBLISHED

UltraVNC viewer off-by-one stack overflow in ServerInit desktop name parsing

Assigner: securin
Reserved: 05.05.2026 Published: 01.07.2026 Updated: 01.07.2026

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.

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:H
CVSS Score: 7.5

Product Status

Vendor uvnc
Product UltraVNC
Versions Default: unaffected
  • affected from 0 to 1.8.2.2 (incl.)

Credits

  • Arjun Basnet, Securin (arjun.basnet@securin.io) finder

References

Problem Types

  • Off-by-one Error CWE
  • Out-of-bounds Write CWE