CVE-2026-107615: DLL search order hijacking via screenhooks libraries in TightVNC Server
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 LOADLIBRARYSEARCH 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).
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
GlavSoft TightVNC Server for Windowsto a version that resolves this vulnerability.Fixed in 2.8.88
Event History
Frequently Asked Questions
Who can exploit this issue?
A local authenticated user can exploit it if they can place a malicious screenhooks32.dll or screenhooks64.dll in a writable directory that TightVNC reaches earlier in its default DLL search order.
What level of access can an attacker gain?
Successful exploitation allows arbitrary code execution with SYSTEM privileges because the vulnerable DLL loading occurs in the TightVNC service context.
Are default installations necessarily vulnerable?
Exploitation depends on whether a directory searched before the legitimate DLL location is writable by the local attacker. An installation directory with permissive ACLs is given as an example of a risky configuration.
What can be done before updating?
Ensure that directories considered in the service's DLL search order, especially the TightVNC installation directory, are not writable by untrusted local users. Remove or investigate unexpected screenhooks32.dll and screenhooks64.dll files in such locations.
Which versions are affected?
GlavSoft TightVNC Server for Windows versions before 2.8.88 are affected.