Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure victim to malicious VNC server
-
ExploitSend crafted ZRLE tiles with oversized palette indices
-
ExecutionTrigger unvalidated out-of-bounds heap read in decoder
-
ImpactLeak heap bytes to framebuffer or crash viewer
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the victim to run TightVNC Viewer for Windows (version before 2.8.88) and to initiate a VNC session to an attacker-controlled or compromised server (UI:R); the server must negotiate ZRLE encoding and send tiles whose palette indices exceed the declared palette size. Limiting factors: no code execution is achieved, impact is confined to crashing the viewer (DoS) and limited heap disclosure into the rendered framebuffer; exploitation is server-to-client, so the attacker must control or MITM the server the victim connects to rather than reaching the victim directly. No authentication of the viewer is required by the server side (PR:N), and default viewer configurations are affected since ZRLE is a standard supported encoding. |
| Impact | This is a medium-to-high severity client-side flaw (CVSS 7.1) whose score is driven almost entirely by availability impact (A:H, viewer crash) plus a low confidentiality leak (C:L, heap bytes rendered into the framebuffer). The CVSS vector is internally consistent with the description: AV:N/AC:L/PR:N are correct because a VNC server transmits the malicious ZRLE tiles over the network with no authentication of the viewer, and UI:R correctly reflects that the victim must actively initiate a connection to the attacker-controlled or compromised server. This is a reverse/server-to-client attack, not a remotely reachable service bug, which materially lowers real-world risk versus the raw 7.1 would suggest. No EPSS score was provided, so exploitation probability cannot be quantified. There is no CISA KEV listing and no POC referenced - exploitation status is 'no public exploit identified at time of analysis.' No SSVC decision data was supplied. Net: this is a legitimate bug to patch (an out-of-bounds read is confirmed by vendor with a fix), but it is a lower operational priority than its 7.1 implies because it requires user interaction, an attacker-controlled server, and yields only crash plus minor information disclosure rather than code execution. Missing signals (EPSS, SSVC, POC) should be treated as unknown, not as low - verify against vendor advisory if prioritizing. |
| Exploit ScenarioDerived | An attacker stands up a malicious VNC server (or compromises a legitimate one) and lures a TightVNC Viewer user to connect, for example via a phishing link, a rogue connection profile, or a man-in-the-middle on an existing session. Once connected, the server sends ZRLE-encoded tiles containing palette indices larger than the declared palette size; readPaletteRleTile()/readPackedPaletteTile() use those indices without bounds-checking, reading heap memory beyond the palette allocation. The result is either garbled heap data copied into the displayed framebuffer (minor information disclosure) or a read fault that terminates the viewer. No public exploit identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 08, 2026
Out-of-bounds heap reads in the ZRLE decoder of GlavSoft TightVNC Viewer for Windows (versions before 2.8.88) let a malicious or compromised VNC server crash the viewer and leak small amounts of adjacent heap memory into the rendered framebuffer. The victim must initiate the VNC session to the attacker-controlled or man-in-the-middle'd server and the connection must negotiate ZRLE encoding; the server then sends palette-based tiles whose colour indices exceed the declared palette size, causing readPaletteRleTile() and readPackedPaletteTile() to index past the end of the palette allocation. The assessed vector is CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H (7.1), a medium-to-high client-side flaw whose score is driven almost entirely by availability impact (viewer termination) plus a limited confidentiality leak (heap bytes rendered as garbled colours), with no code execution achieved; no public exploit code has been identified at time of analysis, and vendor patches are available in 2.8.88.
RemediationAI
Upgrade TightVNC Viewer for Windows to 2.8.88 or later, which is the vendor-released fix containing the validated palette-index handling; verify the installed build against the release notes at https://www.tightvnc.com/whatsnew.php and track the upstream defect at https://sourceforge.net/p/vnc-tight/bugs/1657/. Where an immediate upgrade is not possible, the most effective compensating control is to avoid connecting the viewer to untrusted or unverified VNC servers at all, and where remote access is needed, tunnel the VNC session through an authenticated, encrypted channel such as SSH port forwarding or a VPN so that a network attacker cannot impersonate or MITM the server and inject crafted ZRLE tiles; the trade-off is operational overhead in setting up and maintaining the tunnel. If the viewer's encoding negotiation allows it, deprioritizing or disabling ZRLE so that a less capable encoding (for example Hextile or raw) is negotiated removes the vulnerable code path, at the cost of higher bandwidth consumption and reduced responsiveness on slow links, and this depends on the client honoring the configured encoding preference chain versus the server's proposal. Restricting outbound connections from workstations to known-good VNC endpoints at the firewall is a further mitigation, but it also blocks legitimate ad-hoc administration sessions. Note that no vendor patch removes the underlying protocol weakness for older builds, so these controls are interim measures only.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
TightVNC is a cross-platform implementation of the RFB (VNC) protocol, and ZRLE (Zlib Run-Length Encoding) is one of the standard encodings a server may negotiate. In indexed-colour (palette) mode, a ZRLE tile carries a declared palette size followed by palette entries (RGB triples) and then per-pixel palette indices; the decoder is expected to validate every index against the palette size before performing a lookup. In TightVNC Viewer for Windows before 2.8.88, the routines readPaletteRleTile() and readPackedPaletteTile() use the attacker-supplied index directly as an offset into the palette array, which is a classic CWE-125 out-of-bounds read. Because the palette lives on the heap, indices past the allocation read adjacent heap memory: the resulting bytes are copied into the framebuffer and displayed as garbled colours (low confidentiality impact), or the out-of-range access faults and terminates the viewer (high availability impact). The CPE cpe:2.3:a:glavsoft:tightvnc:*:*:*:*:*:*:*:* confirms the affected product family is GlavSoft's TightVNC, and the missing version constraints in the CPE mean all releases prior to the fixed build must be assumed vulnerable. The flaw is server-to-client: the attacker controls or intercepts the server the viewer connects to, rather than reaching the viewer directly, and no privileges are required on the viewer side per the PR:N element of the assessed vector.
Know when Tightvnc gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H
Malicious server delivers tiles over the network (AV:N/AC:L/PR:N) but the victim must connect (UI:R); crash gives A:H and heap bytes rendered to screen give C:L, with no integrity impact.
Primary rating from Vendor (securin).
CVSS VectorVendor: securin
DescriptionCVE.org
An out-of-bounds read vulnerability in the ZRLE decoder of GlavSoft TightVNC Viewer for Windows before 2.8.88 allows a malicious or compromised VNC server to read heap memory beyond the palette allocation and crash the viewer by sending ZRLE-encoded tiles whose palette indices exceed the declared palette size. readPaletteRleTile() and readPackedPaletteTile() use the attacker-supplied index to look up colours without validating it against the palette size; out-of-bounds heap data is copied into the framebuffer (garbled display) or the read faults, terminating the viewer.
Executive ViewAI
TightVNC Viewer for Windows versions before 2.8.88 contains a heap out-of-bounds read that an attacker can trigger by luring a user to connect to a malicious or compromised VNC server. This unauthenticated flaw requires user interaction and can crash the viewer while leaking small amounts of heap memory, posing a moderate risk to organizations that rely on VNC for remote administration. No public exploit identified at time of analysis, but vendor patches are available.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
TightVNC before v2.8.75 allows attackers to escalate privileges on the host operating system via replacing legitimate fi
Buffer Overflow vulnerability in tvnviewer.exe of TightVNC Viewer allows a remote attacker to execute arbitrary instruct
TightVNC code version 1.3.10 contains global buffer overflow in HandleCoRREBBP macro function, which can potentially res
TightVNC code version 1.3.10 contains heap buffer overflow in InitialiseRFBConnection function, which can potentially re
TightVNC code version 1.3.10 contains heap buffer overflow in rfbServerCutText handler, which can potentially result cod
Local privilege escalation in GlavSoft TightVNC Server for Windows before 2.8.88 allows an authenticated local user to e
Local privilege escalation in TightVNC Server for Windows before 2.8.88 allows an authenticated low-privileged user to t
TightVNC code version 1.3.10 contains null pointer dereference in HandleZlibBPP function, which results Denial of System
Denial of service in TightVNC Server for Windows before 2.8.88: a local authenticated user can trigger an integer underf
Denial of service in GlavSoft TightVNC Server for Windows (versions before 2.8.88) allows unauthenticated remote attacke
EUVD-2026-94975
GHSA-r575-8hw6-vfq3
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB