Skip to main content

TightVNC Server EUVDEUVD-2026-94979

| CVE-2026-107615 HIGH
Uncontrolled Search Path Element (CWE-427)
2026-10-08 securin GHSA-c7v7-v5cv-43wm
7.8
CVSS 3.1 · Vendor: securin
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as local user
  2. Delivery
    Plant malicious screenhooks DLL in writable search-order directory
  3. Exploit
    Service LoadLibrary() loads planted DLL
  4. Execution
    Code runs as SYSTEM
  5. Impact
    Full host compromise

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V13 - Configuration Search path element control
Exploitation Conditions

Requires an existing local, authenticated session on a Windows host running TightVNC Server prior to 2.8.88, plus a directory that (a) sits earlier in the default DLL search order than the legitimate screenhooks32.dll/screenhooks64.dll location and (b) is writable by the attacker - the description specifically cites an installation directory left with permissive (weak) ACLs. Exploitation is limited by these factors: it cannot be performed remotely or unauthenticated, it fails if all search-order directories ahead of the real DLL are non-writable by the attacker, and it depends on the SYSTEM-level TightVNC service invoking the vulnerable LoadLibrary() path. There is no user-interaction requirement beyond triggering the service's DLL load.

Impact

This is a credible but not emergency-tier priority. The provided CVSS 3.1 vector (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, base 7.8) is internally consistent with the description: a local, already-authenticated user (PR:L) exploits an uncontrolled DLL search path to gain full SYSTEM-level code execution (C:H/I:H/A:H), making this a local privilege-escalation issue rather than remote compromise. The AV:L rating agrees with the description's 'local authenticated user' language, so there is no network-vs-local conflict to resolve. No EPSS score was provided, so exploitation probability cannot be quantified. The CVE is NOT listed in CISA KEV and no public POC is referenced, so exploitation status is 'no public exploit identified at time of analysis.' SSVC-style reasoning: exploitation is not observed, the attack is not automatable (requires an existing local foothold and a writable directory in the search path), but technical impact is total (SYSTEM). Net: this is a genuine local EoP worth patching on standard cycles, not a high-CVSS-but-illusory issue, but it is gated behind prior local access and a permissive-ACL precondition, which lowers real-world urgency relative to a network-exploitable flaw.

Exploit ScenarioDerived

A low-privileged but authenticated user on a Windows host running TightVNC Server places a malicious screenhooks32.dll or screenhooks64.dll in a writable directory that appears earlier in the default DLL search order than the legitimate location (for example, a TightVNC install directory left with permissive ACLs). When the TightVNC service (running as SYSTEM) next calls DynamicLibrary::init()/ThemeLib and LoadLibrary() resolves the bare DLL name, it loads the attacker's DLL and executes its code with SYSTEM privileges. No public exploit code is referenced, so this reflects the described mechanism rather than a confirmed in-the-wild technique.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 08, 2026

Local privilege escalation in GlavSoft TightVNC Server for Windows before 2.8.88 allows an authenticated local user to execute arbitrary code with SYSTEM privileges by planting a malicious screenhooks32.dll or screenhooks64.dll where the TightVNC service will load it. DynamicLibrary::init() and ThemeLib call LoadLibrary() with bare file names and no LOAD_LIBRARY_SEARCH_* flags, so the service follows the default DLL search order and picks up an attacker-controlled copy from a writable directory that sits ahead of the legitimate file, such as an installation directory left with weak ACLs. Exploitation is constrained: it requires a pre-existing local session on the affected host plus a writable directory earlier in the search order, so it cannot be triggered remotely or unauthenticated; no public exploit identified at time of analysis.

RemediationAI

Vendor-released patch: TightVNC 2.8.88 - upgrade the Windows server to 2.8.88 or later, which is the fix identified in the vendor's release notes at https://www.tightvnc.com/whatsnew.php (upstream issue: https://sourceforge.net/p/vnc-tight/bugs/1666/). Where immediate upgrading is not possible, the highest-value compensating control is to tighten filesystem ACLs on every directory that appears in the service's DLL search order, especially the TightVNC installation directory and any attacker-writable directory ahead of the legitimate screenhooks32.dll/screenhooks64.dll location, so that non-administrative users have no write or create-file rights there; the trade-off is that overly restrictive ACLs can interfere with legitimate installer or plugin writes, so validate after applying. Also verify that no writable directory is reachable through the service's working directory or PATH at service start, and consider reducing the exposure by restricting who can log on locally to hosts running the TightVNC service. These mitigations reduce the attack surface but do not repair the underlying insecure LoadLibrary() call, so patching to 2.8.88 remains the definitive remedy.

Affected VersionsENISA

TightVNC 0 <2.8.88

Affected Packages

euvd tightvnc fix: 2.8.88

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

The root cause is CWE-427 (Uncontrolled Search Path Element), a DLL-hijacking class that arises when a process calls LoadLibrary() (or an equivalent loader API) with a relative, bare file name instead of an absolute path or a secure search-mode flag. On Windows, the default search order begins with the directory of the loading executable, then system directories, then the current working directory, then directories listed in PATH; any of those locations that is writable by a lower-privileged user can be used to pre-place a file with the expected name. Here, TightVNC Server's DynamicLibrary::init() and its ThemeLib component load screenhooks32.dll and screenhooks64.dll without LOAD_LIBRARY_SEARCH_SYSTEM32, LOAD_LIBRARY_SEARCH_APPLICATION_DIR, or an equivalent hardened flag, and the affected service runs with SYSTEM privileges, so whatever code is loaded executes at that integrity level. The vulnerability is tracked against the GlavSoft TightVNC Windows distribution via CPE cpe:2.3:a:glavsoft:tightvnc:*:*:*:*:*:*:*:*, i.e. all releases prior to the fixed 2.8.88 build. Because the attack is local and requires an existing authenticated account, the practical exploitation path is privilege escalation from a low-privileged user to SYSTEM on a host where the TightVNC service is installed and a search-order directory (notably the install directory itself) permits writes by that user. Upstream bug tracking is at SourceForge issue 1666, with the fix line documented in the vendor's What's New page.

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

Vendor (securin) PRIMARY 7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 7.8 HIGH

Needs an authenticated local foothold (AV:L, PR:L) and a writable search-path dir, but given that, DLL planting reliably yields SYSTEM (AC:L, C/I/A:H).

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (securin).

CVSS VectorVendor: securin

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

DescriptionCVE.org

An uncontrolled search path element vulnerability in GlavSoft TightVNC Server for Windows before 2.8.88 allows a local authenticated user to execute arbitrary code with SYSTEM privileges. DynamicLibrary::init() (and ThemeLib) load screenhooks32.dll / screenhooks64.dll with LoadLibrary() using a bare file name and no LOAD_LIBRARY_SEARCH_* flags, so the TightVNC service follows the default DLL search order and loads an attacker-planted DLL from a writable directory earlier in that order (for example, an installation directory with permissive ACLs).

Executive ViewAI

Why It Matters

TightVNC Server for Windows versions before 2.8.88 contains a local privilege escalation vulnerability that could let an attacker with an existing session gain SYSTEM-level control of affected hosts. Although no public exploit identified at time of analysis and exploitation requires local access, successful compromise would give attackers complete control of the server, risking sensitive data and undermining endpoint security. Leadership should prioritize remediation to protect critical systems and maintain trust in the organization's security posture.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Medium
popular free VNC server, common but not universally deployed
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

CVE-2023-27830 CRITICAL POC
9.0 Apr 12

TightVNC before v2.8.75 allows attackers to escalate privileges on the host operating system via replacing legitimate fi

CVE-2021-42785 CRITICAL
9.8 Nov 23

Buffer Overflow vulnerability in tvnviewer.exe of TightVNC Viewer allows a remote attacker to execute arbitrary instruct

CVE-2019-8287 CRITICAL
9.8 Oct 29

TightVNC code version 1.3.10 contains global buffer overflow in HandleCoRREBBP macro function, which can potentially res

CVE-2019-15679 CRITICAL
9.8 Oct 29

TightVNC code version 1.3.10 contains heap buffer overflow in InitialiseRFBConnection function, which can potentially re

CVE-2019-15678 CRITICAL
9.8 Oct 29

TightVNC code version 1.3.10 contains heap buffer overflow in rfbServerCutText handler, which can potentially result cod

CVE-2026-107612 HIGH
7.8 Oct 08

Local privilege escalation in TightVNC Server for Windows before 2.8.88 allows an authenticated low-privileged user to t

CVE-2019-15680 HIGH
7.5 Oct 29

TightVNC code version 1.3.10 contains null pointer dereference in HandleZlibBPP function, which results Denial of System

CVE-2026-107611 HIGH
7.1 Oct 08

Out-of-bounds heap reads in the ZRLE decoder of GlavSoft TightVNC Viewer for Windows (versions before 2.8.88) let a mali

CVE-2026-107614 MEDIUM
6.1 Oct 08

Denial of service in TightVNC Server for Windows before 2.8.88: a local authenticated user can trigger an integer underf

CVE-2026-107613 MEDIUM
5.9 Oct 08

Denial of service in GlavSoft TightVNC Server for Windows (versions before 2.8.88) allows unauthenticated remote attacke

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy