Cloudanix VulnDB

CVE-2016-9941

Critical · 9.8

CVSS

9.8

EPSS

3.7%

Published

Dec 31, 2016

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

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

  1. Attacker hosts a rogue VNC server reachable by the target client
  2. Victim client initiates a VNC connection to the attacker-controlled server
  3. Server sends a malicious FramebufferUpdate message with out-of-bounds subrectangle coordinates
  4. Client library processes the message and overflows the heap buffer
  5. 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