CVE-2020-14399
📋 TL;DR
CVE-2020-14399 is a memory access vulnerability in LibVNCServer where byte-aligned data is accessed through uint32_t pointers, potentially causing memory corruption. This affects applications using LibVNCServer for VNC client functionality before version 0.9.13. While the vulnerability exists, the maintainers note there is reportedly 'no trust boundary crossed' in typical usage.
💻 Affected Systems
- LibVNCServer
- Applications using LibVNCServer library
📦 What is this software?
Leap by Opensuse
Leap by Opensuse
Libvncserver by Libvncserver Project
Ubuntu Linux by Canonical
Ubuntu Linux by Canonical
Ubuntu Linux by Canonical
⚠️ Risk & Real-World Impact
Worst Case
Memory corruption leading to arbitrary code execution or denial of service on systems using vulnerable LibVNCServer client code.
Likely Case
Application crashes or denial of service due to improper memory access when processing VNC protocol data.
If Mitigated
Limited impact due to the 'no trust boundary crossed' nature, potentially only affecting client-side functionality without privilege escalation.
🎯 Exploit Status
Exploitation requires sending specially crafted VNC protocol data to trigger the improper memory access.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 0.9.13 and later
Vendor Advisory: https://github.com/LibVNC/libvncserver/commit/23e5cbe6b090d7f22982aee909a6a618174d3c2d
Restart Required: Yes
Instructions:
1. Update LibVNCServer to version 0.9.13 or later. 2. Recompile any applications using LibVNCServer. 3. Restart affected services or applications.
🔧 Temporary Workarounds
Network segmentation
allRestrict network access to VNC services to trusted networks only
Application firewalling
linuxUse host-based firewalls to limit which systems can connect to VNC services
sudo ufw deny from any to any port 5900-5910
🧯 If You Can't Patch
- Implement strict network access controls to limit VNC traffic to trusted sources only
- Monitor for abnormal application behavior or crashes related to VNC client functionality
🔍 How to Verify
Check if Vulnerable:
Check LibVNCServer version: ldd /path/to/application | grep vnc, then check version in source or package manager
Check Version:
pkg-config --modversion libvncserver || find /usr -name '*vnc*' -type f | xargs strings | grep -i version
Verify Fix Applied:
Verify LibVNCServer version is 0.9.13 or higher and applications have been recompiled with updated library
📡 Detection & Monitoring
Log Indicators:
- Application crashes with segmentation faults
- Memory access violation errors in application logs
Network Indicators:
- Unusual VNC protocol traffic patterns
- Multiple connection attempts to VNC ports
SIEM Query:
source="application.logs" AND ("segmentation fault" OR "memory access" OR "vnc")
🔗 References
- http://lists.opensuse.org/opensuse-security-announce/2020-07/msg00033.html
- http://lists.opensuse.org/opensuse-security-announce/2020-07/msg00055.html
- http://lists.opensuse.org/opensuse-security-announce/2020-07/msg00066.html
- https://bugzilla.redhat.com/show_bug.cgi?id=1860354
- https://github.com/LibVNC/libvncserver/commit/23e5cbe6b090d7f22982aee909a6a618174d3c2d
- https://github.com/LibVNC/libvncserver/compare/LibVNCServer-0.9.12...LibVNCServer-0.9.13
- https://lists.debian.org/debian-lts-announce/2020/06/msg00035.html
- https://lists.debian.org/debian-lts-announce/2020/08/msg00045.html
- https://usn.ubuntu.com/4434-1/
- http://lists.opensuse.org/opensuse-security-announce/2020-07/msg00033.html
- http://lists.opensuse.org/opensuse-security-announce/2020-07/msg00055.html
- http://lists.opensuse.org/opensuse-security-announce/2020-07/msg00066.html
- https://bugzilla.redhat.com/show_bug.cgi?id=1860354
- https://github.com/LibVNC/libvncserver/commit/23e5cbe6b090d7f22982aee909a6a618174d3c2d
- https://github.com/LibVNC/libvncserver/compare/LibVNCServer-0.9.12...LibVNCServer-0.9.13
- https://lists.debian.org/debian-lts-announce/2020/06/msg00035.html
- https://lists.debian.org/debian-lts-announce/2020/08/msg00045.html
- https://usn.ubuntu.com/4434-1/