CVE-2016-9941
Critical · 9.8CVSS
9.8
EPSS
3.7%
Published
Dec 31, 2016
CISA due date
—
Cloudanix analysis
A flaw in a common remote desktop library lets attackers who trick your software into connecting to their server crash the program or potentially take control of the computer.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Heap-based buffer overflow in LibVNCClient allowing remote servers to write outside allocated memory via a crafted FramebufferUpdate message with a subrectangle outside the client drawing area, leading to crashes or arbitrary code execution.
Why it matters to the business
Attackers could crash VNC client applications or gain remote code execution on systems using affected LibVNCServer versions, disrupting remote access tools and any dependent software across 98 downstream packages with potential for data compromise or service outages; remediation urgency remains due to widespread use despite the vulnerability's age.
How an attack unfolds
An attacker configures a malicious VNC server to respond to client connections with a specially crafted FramebufferUpdate message that includes a subrectangle positioned outside the expected client drawing area, triggering the heap overflow in rfbproto.c during message processing.
How to fix it
Upgrade libvnc/libvncserver to commit 8415ff4c3517c6697d53e1a17bba35284f480891 or later and tensorflow (Bitnami) to version 2.1.4 or newer; apply updates across all affected products and dependents immediately.
How to confirm the fix worked
Verify installed package versions against the fixed commit hash or 2.1.4; recompile and test clients with synthetic FramebufferUpdate messages containing oversized subrectangles to confirm absence of overflow.
Typical attack path
- Attacker hosts a rogue VNC server reachable by the target client
- Victim client initiates a VNC connection to the attacker-controlled server
- Server sends a malicious FramebufferUpdate message with out-of-bounds subrectangle coordinates
- Client library processes the message and overflows the heap buffer
- Attacker achieves denial of service via crash or potentially executes arbitrary code
How to detect it
Review VNC client logs for unusual FramebufferUpdate messages or crashes during connection handling; inspect process memory dumps and network captures for malformed rectangle coordinates from untrusted servers.
What your security team should do
- Prioritize patching all instances of libvncserver and tensorflow dependents due to high CVSS and ecosystem prevalence
- Scan for and replace any remaining pre-0.9.11 LibVNCServer deployments
- Implement network controls to restrict VNC connections to trusted servers only
- Monitor EPSS and downstream usage metrics for any future exploitation signals
The record
Heap-based buffer overflow in rfbproto.c in LibVNCClient in LibVNCServer before 0.9.11 allows remote servers to cause a denial of service (application crash) or possibly execute arbitrary code via a crafted FramebufferUpdate message containing a subrectangle outside of the client drawing area.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.10 | libvncserver | 0 | 0.9.11-r0 |
| Alpine:v3.11 | libvncserver | 0 | 0.9.11-r0 |
| Alpine:v3.2 | libvncserver | 0 | 0.9.10-r2 |
| Alpine:v3.3 | libvncserver | 0 | 0.9.10-r2 |
| Alpine:v3.4 | libvncserver | 0 | 0.9.10-r2 |
| Alpine:v3.5 | libvncserver | 0 | 0.9.10-r2 |
| Alpine:v3.6 | libvncserver | 0 | 0.9.11-r0 |
| Alpine:v3.7 | libvncserver | 0 | 0.9.11-r0 |
| Alpine:v3.8 | libvncserver | 0 | 0.9.11-r0 |
| Alpine:v3.9 | libvncserver | 0 | 0.9.11-r0 |
| Debian:11 | libvncserver | 0 | 0.9.11+dfsg-1 |
| Debian:11 | veyon | 0 | 4.1.4+repack1-1 |
| Debian:12 | libvncserver | 0 | 0.9.11+dfsg-1 |
| Debian:12 | veyon | 0 | 4.1.4+repack1-1 |
| Debian:13 | libvncserver | 0 | 0.9.11+dfsg-1 |
| Debian:13 | veyon | 0 | 4.1.4+repack1-1 |
| Debian:14 | libvncserver | 0 | 0.9.11+dfsg-1 |
| Debian:14 | veyon | 0 | 4.1.4+repack1-1 |
| Debian:7 | libvncserver | 0 | 0.9.9+dfsg-1+deb7u2 |
| Debian:8 | italc | 0 | 1:2.0.2+dfsg1-2+deb8u1 |
| Debian:8 | libvncserver | 0 | 0.9.9+dfsg2-6.1+deb8u2 |
| Mageia:5 | libvncserver | 0 | 0.9.10-1.2.mga5 |
| SUSE:Linux Enterprise Desktop 12 SP1 | tigervnc | 0 | 1.4.3-19.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | tigervnc | 0 | 1.6.0-16.4 |
| SUSE:Linux Enterprise Server 11 SP4 | LibVNCServer | 0 | 0.9.1-159.1 |
| SUSE:Linux Enterprise Server 12 SP1 | tigervnc | 0 | 1.4.3-19.1 |
| SUSE:Linux Enterprise Server 12 SP2 | LibVNCServer | 0 | 0.9.9-17.5.1 |
| SUSE:Linux Enterprise Server 12 SP2 | tigervnc | 0 | 1.6.0-16.4 |
| SUSE:Linux Enterprise Server 12 SP3 | LibVNCServer | 0 | 0.9.9-17.5.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | LibVNCServer | 0 | 0.9.9-17.5.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | tigervnc | 0 | 1.6.0-16.4 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | LibVNCServer | 0 | 0.9.1-159.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | tigervnc | 0 | 1.4.3-19.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | LibVNCServer | 0 | 0.9.9-17.5.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | tigervnc | 0 | 1.6.0-16.4 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | LibVNCServer | 0 | 0.9.9-17.5.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | LibVNCServer | 0 | 0.9.1-159.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | LibVNCServer | 0 | 0.9.9-17.5.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP3 | LibVNCServer | 0 | 0.9.9-17.5.1 |
| Ubuntu:14.04:LTS | libvncserver | 0 | 0.9.9+dfsg-1ubuntu1.2 |
| Ubuntu:16.04:LTS | italc | 0 | 1:2.0.2+dfsg1-4ubuntu0.1 |
| Ubuntu:16.04:LTS | libvncserver | 0 | 0.9.10+dfsg-3ubuntu0.16.04.1 |
Related vulnerabilities
- CVE-2014-6053 The rfbProcessClientNormalMessage function in libvncserver/rfbserver.c in LibVNCServer… Also affects libvncserver
- CVE-2014-6051 Integer overflow in the MallocFrameBuffer function in vncviewer.c in LibVNCServer 0.9.9… Also affects libvncserver
- CVE-2026-112108 A vulnerability was determined in ztxz16 fastllm up to 0.1.8.2. CWE-119
- CVE-2026-112073 A vulnerability was identified in Tencent ncnn up to 44b02dabdcf97499281a4692ebd65bad73dc… CWE-119
- CVE-2026-90831 A vulnerability was detected in GNU Binutils 2.47. CWE-119
- CVE-2026-90804 A vulnerability was detected in GNU Binutils 2.47. CWE-119
- CVE-2026-90803 A security vulnerability has been detected in GNU Binutils 2.47. CWE-119
- CVE-2026-90801 A security flaw has been discovered in GNU Binutils 2.47. CWE-119