CVE-2026-44041: UltraVNC Out-of-Bounds Read in Wide-String Conversion
UltraVNC versions through 1.8.2.2 contain a flaw in how the software processes text encoding conversion. When converting wide-character strings to multibyte format, the code reads from a caller-supplied buffer without first checking its bounds. If that buffer is missing a proper null terminator, the read operation continues beyond the buffer's legitimate memory, exposing data from adjacent memory regions or potentially crashing the application. This vulnerability requires an unusual programming pattern to trigger and is not currently known to be actively exploited.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 4.3 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
- Weaknesses (CWE)
- CWE-125
- Affected products
- 1 configuration(s)
- Published / Modified
- 2026-07-01 / 2026-07-09
NVD description (verbatim)
UltraVNC through 1.8.2.2 contains an out-of-bounds read in the wide-string to multibyte conversion helper. In rfb/dh.cpp:204, the vncWc2Mb() function passes a caller-supplied WCHAR pointer to wcslen() before any bounds check. If the caller provides a wide-character buffer that is not properly NUL-terminated, wcslen() reads past the end of the buffer until it encounters a NUL wchar, resulting in an out-of-bounds read. Under typical Win32 API usage this requires an abnormal caller contract. Impact is limited to a potential information disclosure from adjacent memory regions or a process crash (denial of service) if the over-read crosses a page boundary.
3 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-44041 is an out-of-bounds read vulnerability in the vncWc2Mb() helper function located in rfb/dh.cpp:204 of UltraVNC through version 1.8.2.2. The function invokes wcslen() on a WCHAR pointer supplied by the caller prior to performing boundary validation. If the wide-character buffer lacks proper NUL termination, wcslen() will read beyond the allocated buffer boundary until locating a NUL wchar, triggering an out-of-bounds read. While Win32 API conventions normally prevent this scenario, anomalous caller contracts can instantiate the condition. The read operation may disclose adjacent memory contents or induce a process crash if the over-read traverses a page boundary, causing an access violation.
Business impact
The primary risk stems from potential denial of service through process crash, which could interrupt remote desktop services for affected users. Secondary risk involves information disclosure if an attacker can craft conditions to leak memory contents—though this requires abnormal caller patterns. Organizations relying on UltraVNC for remote administration should assess exposure; the low severity score reflects the unusual preconditions needed to trigger the flaw and the lack of active exploitation.
Affected systems
UltraVNC versions 1.8.2.2 and earlier are affected. The vulnerability exists in the wide-string conversion helper, a component used during RFB protocol message handling. Any deployment of UltraVNC as a remote access tool—whether server-side or integrated into products that bundle UltraVNC—should be considered within scope for assessment.
Exploitability
Exploitation is not straightforward. The vulnerability requires an abnormal caller contract—specifically, a code path that passes a non-null-terminated wide-character buffer to vncWc2Mb(). Standard Win32 API usage patterns would not ordinarily produce such a scenario. No public exploit code or proof-of-concept has been disclosed, and this vulnerability is not listed in CISA's Known Exploited Vulnerabilities catalog. The out-of-bounds read nature makes reliable exploitation difficult; consistent information disclosure or controlled denial of service would require precise memory layout knowledge.
Remediation
Update UltraVNC to a version newer than 1.8.2.2 once available from the vendor. Verify against the official UltraVNC project repository or advisory for the specific patched version. Until patching is feasible, audit code paths that invoke vncWc2Mb() to confirm that all callers provide properly null-terminated wide-character buffers, and review access controls to restrict RFB connections to trusted networks.
Patch guidance
Monitor the UltraVNC project repository and official security advisories for a patched version addressing this out-of-bounds read. Patches may be released under a version number greater than 1.8.2.2; verify the fix against the vendor's changelog to confirm that the vncWc2Mb() function now validates buffer bounds before calling wcslen(). Apply patches during a maintenance window that minimizes disruption to remote access services. Test patched versions in a non-production environment before wider deployment.
Detection guidance
Review application event logs for abnormal terminations or crashes of UltraVNC processes, particularly those coinciding with unusual RFB protocol messages. Monitor memory access violations and page faults involving UltraVNC. Conduct static code analysis of integration points where vncWc2Mb() is called to identify whether callers guarantee null-terminated buffers. Network-based detection is difficult given the requirement for abnormal caller conditions; focus on host-based telemetry and code review.
Why prioritize this
This vulnerability ranks as medium severity (CVSS 3.1) and should be addressed during normal patch cycles rather than through emergency response. The combination of abnormal preconditions, lack of active exploitation, and limitation to denial of service or memory disclosure (without code execution) justifies a standard remediation timeline. Organizations with UltraVNC exposed to untrusted networks should prioritize higher than those with segmented or access-controlled deployments.
Risk score, explained
The CVSS 3.1 score of 4.3 (MEDIUM) reflects: network-accessible attack vector, low attack complexity, requirement for prior authentication (PR:L), absence of impact to confidentiality or integrity (C:N/I:N), and limited availability impact (A:L). The score appropriately penalizes the vulnerability for its exploitability barriers—specifically the abnormal caller contract needed to trigger the flaw—while acknowledging the potential for denial of service.
Frequently asked questions
Can this vulnerability be exploited remotely over the network?
Technically, yes, if an attacker gains authentication to the RFB service and can craft a message that reaches vncWc2Mb() with a malformed buffer. However, the requirement for an abnormal caller contract significantly raises the bar. Standard RFB protocol implementations are unlikely to produce the non-null-terminated wide-character buffers necessary to trigger the flaw.
What is the difference between an out-of-bounds read and an out-of-bounds write?
An out-of-bounds read accesses memory beyond allocated boundaries but does not modify it, typically enabling information disclosure or crashes. An out-of-bounds write modifies that memory, risking data corruption, control flow hijacking, or code execution. This vulnerability is a read, limiting its impact to disclosure or denial of service rather than code execution.
Is there an easy workaround if we cannot patch immediately?
No single workaround eliminates the risk entirely. Mitigation strategies include: restricting RFB access to trusted networks, disabling UltraVNC if not actively needed, isolating UltraVNC processes with sandboxing or AppContainer restrictions, and monitoring for abnormal terminations. These reduce exposure but do not address the root cause; patching remains the primary remediation.
How long has this vulnerability been in UltraVNC?
The vulnerability exists in UltraVNC through version 1.8.2.2 with publication on 2026-07-01. Without access to the full version history or vendor statement, we cannot definitively determine when the flaw was introduced. Consult the vendor's security advisory or repository history for more detailed timeline information.
This analysis is provided for informational purposes and should not be construed as legal, compliance, or professional security advice. SEC.co makes no warranty regarding the accuracy, completeness, or timeliness of this information. Vulnerability details, patch availability, and exploitation status are subject to change. Organizations should verify patch versions against official vendor advisories before deployment and conduct independent risk assessments appropriate to their environment and threat model. Source: NVD (public-domain), retrieved 2026-08-09. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2020-9711MEDIUMAdobe Acrobat Reader Out-of-Bounds Read Memory Disclosure
- CVE-2020-9713MEDIUMAdobe Acrobat Reader Memory Disclosure Vulnerability
- CVE-2025-15661MEDIUMlibssh2 Out-of-Bounds Heap Read in SFTP Symlink Handling
- CVE-2025-70101MEDIUMlwext4 1.0.0 Out-of-Bounds Read Denial of Service
- CVE-2026-0127MEDIUMAndroid Out-of-Bounds Read in Communication Processor – Impact & Patch Guidance
- CVE-2026-0128MEDIUMAndroid RTCP Out-of-Bounds Read Information Disclosure
- CVE-2026-0136MEDIUMAndroid Modem Out-of-Bounds Read Denial of Service
- CVE-2026-0140MEDIUMAndroid RTP Integer Overflow Information Disclosure Vulnerability