CVE Vulnerabilities

CVE-2018-20022

Improper Initialization

Published: Dec 19, 2018 | Modified: Oct 23, 2020
CVSS 3.x
7.5
HIGH
Source:
NVD
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
CVSS 2.x
5 MEDIUM
AV:N/AC:L/Au:N/C:P/I:N/A:N
RedHat/V2
RedHat/V3
5.4 LOW
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:L
Ubuntu
MEDIUM

LibVNC before 2f5b2ad1c6c99b1ac6482c95844a84d66bb52838 contains multiple weaknesses CWE-665: Improper Initialization vulnerability in VNC client code that allows attacker to read stack memory and can be abuse for information disclosure. Combined with another vulnerability, it can be used to leak stack memory layout and in bypassing ASLR

Weakness

The product does not initialize or incorrectly initializes a resource, which might leave the resource in an unexpected state when it is accessed or used.

Affected Software

Name Vendor Start Version End Version
Libvncserver Libvnc_project * 0.9.12 (excluding)
Italc Ubuntu bionic *
Italc Ubuntu trusty *
Italc Ubuntu upstream *
Italc Ubuntu xenial *
Libvncserver Ubuntu bionic *
Libvncserver Ubuntu cosmic *
Libvncserver Ubuntu trusty *
Libvncserver Ubuntu upstream *
Libvncserver Ubuntu xenial *
Ssvnc Ubuntu bionic *
Ssvnc Ubuntu esm-apps/bionic *
Ssvnc Ubuntu trusty *
Ssvnc Ubuntu upstream *
Ssvnc Ubuntu xenial *
Tightvnc Ubuntu bionic *
Tightvnc Ubuntu groovy *
Tightvnc Ubuntu hirsute *
Tightvnc Ubuntu impish *
Tightvnc Ubuntu kinetic *
Tightvnc Ubuntu lunar *
Tightvnc Ubuntu mantic *
Tightvnc Ubuntu trusty *
Tightvnc Ubuntu trusty/esm *
Tightvnc Ubuntu upstream *
Tightvnc Ubuntu xenial *
X11vnc Ubuntu cosmic *
X11vnc Ubuntu trusty *

Potential Mitigations

  • Use a language that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid.
  • For example, in Java, if the programmer does not explicitly initialize a variable, then the code could produce a compile-time error (if the variable is local) or automatically initialize the variable to the default value for the variable’s type. In Perl, if explicit initialization is not performed, then a default value of undef is assigned, which is interpreted as 0, false, or an equivalent value depending on the context in which the variable is accessed.

References