CVE Vulnerabilities

CVE-2019-15681

Improper Initialization

Published: Oct 29, 2019 | Modified: Nov 21, 2024
CVSS 3.x
7.5
HIGH
Source:
NVD
CVSS:3.1/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.3 LOW
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Ubuntu
LOW
root.io logo minimus.io logo echo.ai logo

LibVNC commit before d01e1bb4246323ba6fcee3b82ef1faa9b1dac82a contains a memory leak (CWE-655) in VNC server code, which allow an attacker to read stack memory and can be abused for information disclosure. Combined with another vulnerability, it can be used to leak stack memory and bypass ASLR. This attack appear to be exploitable via network connectivity. These vulnerabilities have been fixed in commit d01e1bb4246323ba6fcee3b82ef1faa9b1dac82a.

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

NameVendorStart VersionEnd Version
LibvncserverLibvnc_project*0.9.12 (excluding)
ItalcUbuntubionic*
ItalcUbuntuesm-apps/bionic*
ItalcUbuntuesm-apps/xenial*
ItalcUbuntutrusty*
ItalcUbuntuupstream*
ItalcUbuntuxenial*
KrfbUbuntubionic*
KrfbUbuntudisco*
KrfbUbuntueoan*
KrfbUbuntufocal*
KrfbUbuntugroovy*
KrfbUbuntuhirsute*
KrfbUbuntuimpish*
KrfbUbuntukinetic*
KrfbUbuntulunar*
KrfbUbuntumantic*
KrfbUbuntuoracular*
KrfbUbuntuplucky*
KrfbUbuntutrusty*
KrfbUbuntuxenial*
LibvncserverUbuntubionic*
LibvncserverUbuntudisco*
LibvncserverUbuntueoan*
LibvncserverUbuntuesm-infra/bionic*
LibvncserverUbuntuesm-infra/xenial*
LibvncserverUbuntutrusty*
LibvncserverUbuntuxenial*
TightvncUbuntubionic*
TightvncUbuntudisco*
TightvncUbuntueoan*
TightvncUbuntuesm-infra-legacy/trusty*
TightvncUbuntufocal*
TightvncUbuntugroovy*
TightvncUbuntuhirsute*
TightvncUbuntuimpish*
TightvncUbuntukinetic*
TightvncUbuntulunar*
TightvncUbuntumantic*
TightvncUbuntuoracular*
TightvncUbuntuplucky*
TightvncUbuntutrusty*
TightvncUbuntutrusty/esm*
TightvncUbuntuxenial*
VeyonUbuntudisco*
VeyonUbuntueoan*
VeyonUbuntufocal*
VeyonUbuntugroovy*
VeyonUbuntuhirsute*
VeyonUbuntuimpish*
VeyonUbuntukinetic*
VeyonUbuntulunar*
VeyonUbuntumantic*
VeyonUbuntuoracular*
VeyonUbuntuplucky*
VeyonUbuntutrusty*
VinoUbuntubionic*
VinoUbuntudisco*
VinoUbuntueoan*
VinoUbuntuesm-apps/jammy*
VinoUbuntuesm-apps/noble*
VinoUbuntuesm-infra/bionic*
VinoUbuntuesm-infra/focal*
VinoUbuntuesm-infra/xenial*
VinoUbuntufocal*
VinoUbuntugroovy*
VinoUbuntuhirsute*
VinoUbuntuimpish*
VinoUbuntujammy*
VinoUbuntukinetic*
VinoUbuntulunar*
VinoUbuntumantic*
VinoUbuntunoble*
VinoUbuntuoracular*
VinoUbuntuplucky*
VinoUbuntuquesting*
VinoUbuntutrusty*
VinoUbuntuxenial*
X11vncUbuntubionic*
X11vncUbuntudisco*
X11vncUbuntueoan*
X11vncUbuntufocal*
X11vncUbuntugroovy*
X11vncUbuntuhirsute*
X11vncUbuntuimpish*
X11vncUbuntukinetic*
X11vncUbuntulunar*
X11vncUbuntumantic*
X11vncUbuntutrusty*
X11vncUbuntutrusty/esm*
X11vncUbuntuxenial*

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