The remote Redhat Enterprise Linux 6 host has one or more packages installed that are affected by multiple vulnerabilities that have been acknowledged by the vendor but will not be patched.
libvncserver: Improper input sanitization in rfbProcessClientNormalMessage in rfbserver.c (CVE-2018-7225)
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. (CVE-2016-9941)
Heap-based buffer overflow in ultra.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 with the Ultra type tile, such that the LZO payload decompressed length exceeds what is specified by the tile dimensions. (CVE-2016-9942)
LibVNC before commit 502821828ed00b4a2c4bef90683d0fd88ce495de contains heap out-of-bound write vulnerability in server code of file transfer extension that can result remote code execution (CVE-2018-15127)
LibVNC before commit a83439b9fbe0f03c48eb94ed05729cb016f8b72f contains multiple heap out-of-bound write vulnerabilities in VNC client code that can result remote code execution (CVE-2018-20019)
LibVNC before commit 7b1ef0ffc4815cab9a96c7278394152bdc89dc4d contains heap out-of-bound write vulnerability inside structure in VNC client code that can result remote code execution (CVE-2018-20020)
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 (CVE-2018-20022)
LibVNC before commit 4a21bbd097ef7c44bb000c3bd0907f96a10e4ce7 contains null pointer dereference in VNC client code that can result DoS. (CVE-2018-20024)
LibVNC before 0.9.12 contains multiple heap out-of-bounds write vulnerabilities in libvncclient/rfbproto.c. The fix for CVE-2018-20019 was incomplete. (CVE-2018-20748)
LibVNC before 0.9.12 contains a heap out-of-bounds write vulnerability in libvncserver/rfbserver.c. The fix for CVE-2018-15127 was incomplete. (CVE-2018-20749)
LibVNC through 0.9.12 contains a heap out-of-bounds write vulnerability in libvncserver/rfbserver.c. The fix for CVE-2018-15127 was incomplete. (CVE-2018-20750)
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. (CVE-2019-15681)
libvncserver: HandleCursorShape() integer overflow resulting in heap-based buffer overflow (CVE-2019-15690)
An issue was discovered in LibVNCServer before 0.9.13. libvncserver/rfbregion.c has a NULL pointer dereference. (CVE-2020-14397)
An issue was discovered in LibVNCServer before 0.9.13. An improperly closed TCP connection causes an infinite loop in libvncclient/sockets.c. (CVE-2020-14398)
An issue was discovered in LibVNCServer before 0.9.13. libvncserver/scale.c has a pixel_value integer overflow. (CVE-2020-14401)
An issue was discovered in LibVNCServer before 0.9.13. libvncserver/corre.c allows out-of-bounds access via encodings. (CVE-2020-14402)
An issue was discovered in LibVNCServer before 0.9.13. libvncserver/hextile.c allows out-of-bounds access via encodings. (CVE-2020-14403)
An issue was discovered in LibVNCServer before 0.9.13. libvncserver/rre.c allows out-of-bounds access via encodings. (CVE-2020-14404)
An issue was discovered in LibVNCServer before 0.9.13. libvncclient/rfbproto.c does not limit TextChat size. (CVE-2020-14405)
A divide by zero issue was found to occur in libvncserver-0.9.12. A malicious client could use this flaw to send a specially crafted message that, when processed by the VNC server, would lead to a floating point exception, resulting in a denial of service. (CVE-2020-25708)
Note that Nessus has not tested for these issues but has instead relied on the package manager’s report that the package is installed.
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
#
# The descriptive text and package checks in this plugin were
# extracted from Red Hat Security Advisory libvncserver. The text
# itself is copyright (C) Red Hat, Inc.
##
include('compat.inc');
if (description)
{
script_id(196364);
script_version("1.0");
script_set_attribute(attribute:"plugin_modification_date", value:"2024/05/11");
script_cve_id(
"CVE-2016-9941",
"CVE-2016-9942",
"CVE-2018-7225",
"CVE-2018-15127",
"CVE-2018-20019",
"CVE-2018-20020",
"CVE-2018-20022",
"CVE-2018-20024",
"CVE-2018-20748",
"CVE-2018-20749",
"CVE-2018-20750",
"CVE-2019-15681",
"CVE-2019-15690",
"CVE-2020-14397",
"CVE-2020-14398",
"CVE-2020-14401",
"CVE-2020-14402",
"CVE-2020-14403",
"CVE-2020-14404",
"CVE-2020-14405",
"CVE-2020-25708"
);
script_name(english:"RHEL 6 : libvncserver (Unpatched Vulnerability)");
script_set_attribute(attribute:"synopsis", value:
"The remote Red Hat 6 host is affected by multiple vulnerabilities that will not be patched.");
script_set_attribute(attribute:"description", value:
"The remote Redhat Enterprise Linux 6 host has one or more packages installed that are affected by multiple
vulnerabilities that have been acknowledged by the vendor but will not be patched.
- libvncserver: Improper input sanitization in rfbProcessClientNormalMessage in rfbserver.c (CVE-2018-7225)
- 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. (CVE-2016-9941)
- Heap-based buffer overflow in ultra.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 with the Ultra type tile, such that the LZO payload decompressed length exceeds
what is specified by the tile dimensions. (CVE-2016-9942)
- LibVNC before commit 502821828ed00b4a2c4bef90683d0fd88ce495de contains heap out-of-bound write
vulnerability in server code of file transfer extension that can result remote code execution
(CVE-2018-15127)
- LibVNC before commit a83439b9fbe0f03c48eb94ed05729cb016f8b72f contains multiple heap out-of-bound write
vulnerabilities in VNC client code that can result remote code execution (CVE-2018-20019)
- LibVNC before commit 7b1ef0ffc4815cab9a96c7278394152bdc89dc4d contains heap out-of-bound write
vulnerability inside structure in VNC client code that can result remote code execution (CVE-2018-20020)
- 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 (CVE-2018-20022)
- LibVNC before commit 4a21bbd097ef7c44bb000c3bd0907f96a10e4ce7 contains null pointer dereference in VNC
client code that can result DoS. (CVE-2018-20024)
- LibVNC before 0.9.12 contains multiple heap out-of-bounds write vulnerabilities in
libvncclient/rfbproto.c. The fix for CVE-2018-20019 was incomplete. (CVE-2018-20748)
- LibVNC before 0.9.12 contains a heap out-of-bounds write vulnerability in libvncserver/rfbserver.c. The
fix for CVE-2018-15127 was incomplete. (CVE-2018-20749)
- LibVNC through 0.9.12 contains a heap out-of-bounds write vulnerability in libvncserver/rfbserver.c. The
fix for CVE-2018-15127 was incomplete. (CVE-2018-20750)
- 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. (CVE-2019-15681)
- libvncserver: HandleCursorShape() integer overflow resulting in heap-based buffer overflow
(CVE-2019-15690)
- An issue was discovered in LibVNCServer before 0.9.13. libvncserver/rfbregion.c has a NULL pointer
dereference. (CVE-2020-14397)
- An issue was discovered in LibVNCServer before 0.9.13. An improperly closed TCP connection causes an
infinite loop in libvncclient/sockets.c. (CVE-2020-14398)
- An issue was discovered in LibVNCServer before 0.9.13. libvncserver/scale.c has a pixel_value integer
overflow. (CVE-2020-14401)
- An issue was discovered in LibVNCServer before 0.9.13. libvncserver/corre.c allows out-of-bounds access
via encodings. (CVE-2020-14402)
- An issue was discovered in LibVNCServer before 0.9.13. libvncserver/hextile.c allows out-of-bounds access
via encodings. (CVE-2020-14403)
- An issue was discovered in LibVNCServer before 0.9.13. libvncserver/rre.c allows out-of-bounds access via
encodings. (CVE-2020-14404)
- An issue was discovered in LibVNCServer before 0.9.13. libvncclient/rfbproto.c does not limit TextChat
size. (CVE-2020-14405)
- A divide by zero issue was found to occur in libvncserver-0.9.12. A malicious client could use this flaw
to send a specially crafted message that, when processed by the VNC server, would lead to a floating point
exception, resulting in a denial of service. (CVE-2020-25708)
Note that Nessus has not tested for these issues but has instead relied on the package manager's report that the package
is installed.");
script_set_attribute(attribute:"solution", value:
"The vendor has acknowledged the vulnerabilities but no solution has been provided. Refer to the vendor for remediation
guidance.");
script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P");
script_set_cvss_temporal_vector("CVSS2#E:POC/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H");
script_set_cvss3_temporal_vector("CVSS:3.0/E:P/RL:O/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2018-7225");
script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
script_set_attribute(attribute:"exploit_available", value:"true");
script_set_attribute(attribute:"vendor_unpatched", value:"true");
script_set_attribute(attribute:"vuln_publication_date", value:"2016/12/31");
script_set_attribute(attribute:"plugin_publication_date", value:"2024/05/11");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"cpe:/o:redhat:enterprise_linux:6");
script_set_attribute(attribute:"cpe", value:"cpe:/o:redhat:enterprise_linux:7");
script_set_attribute(attribute:"cpe", value:"cpe:/o:redhat:enterprise_linux:8");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:libvncserver");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:vino");
script_set_attribute(attribute:"generated_plugin", value:"current");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"Red Hat Local Security Checks");
script_copyright(english:"This script is Copyright (C) 2024 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("ssh_get_info.nasl", "redhat_repos.nasl");
script_require_keys("Host/local_checks_enabled", "Host/RedHat/release", "Host/RedHat/rpm-list", "Host/cpu");
exit(0);
}
include('rpm.inc');
include('rhel.inc');
if (!get_kb_item("global_settings/vendor_unpatched"))
exit(0, "Unpatched Vulnerabilities Detection not active.");
if (!get_kb_item('Host/local_checks_enabled')) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
var os_release = get_kb_item('Host/RedHat/release');
if (isnull(os_release) || 'Red Hat' >!< os_release) audit(AUDIT_OS_NOT, 'Red Hat');
var os_ver = pregmatch(pattern: "Red Hat Enterprise Linux.*release ([0-9]+(\.[0-9]+)?)", string:os_release);
if (isnull(os_ver)) audit(AUDIT_UNKNOWN_APP_VER, 'Red Hat');
os_ver = os_ver[1];
if (!rhel_check_release(operator: 'ge', os_version: os_ver, rhel_version: '6')) audit(AUDIT_OS_NOT, 'Red Hat 6.x', 'Red Hat ' + os_ver);
if (!get_kb_item('Host/RedHat/rpm-list')) audit(AUDIT_PACKAGE_LIST_MISSING);
var cpu = get_kb_item('Host/cpu');
if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
if ('x86_64' >!< cpu && cpu !~ "^i[3-6]86$" && 's390' >!< cpu && 'aarch64' >!< cpu && 'ppc' >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, 'Red Hat', cpu);
var constraints = [
{
'pkgs': [
{'reference':'libvncserver', 'release':'6', 'rpm_spec_vers_cmp':TRUE, 'unpatched_pkg':'libvncserver'},
{'reference':'vino', 'release':'6', 'rpm_spec_vers_cmp':TRUE, 'unpatched_pkg':'vino', 'cves':['CVE-2019-15681', 'CVE-2020-14397', 'CVE-2020-14402', 'CVE-2020-14403', 'CVE-2020-14404', 'CVE-2020-25708']}
]
}
];
var flag = 0;
foreach var constraint_array ( constraints ) {
var repo_relative_urls = NULL;
var enterprise_linux_flag = rhel_repo_urls_has_content_dist_rhel(repo_urls:repo_relative_urls);
foreach var pkg ( constraint_array['pkgs'] ) {
var unpatched_pkg = NULL;
var _release = NULL;
var sp = NULL;
var el_string = NULL;
var rpm_spec_vers_cmp = NULL;
var exists_check = NULL;
var cves = NULL;
if (!empty_or_null(pkg['unpatched_pkg'])) unpatched_pkg = pkg['unpatched_pkg'];
if (!empty_or_null(pkg['release'])) _release = 'RHEL' + pkg['release'];
if (!empty_or_null(pkg['sp'])) sp = pkg['sp'];
if (!empty_or_null(pkg['rpm_spec_vers_cmp'])) rpm_spec_vers_cmp = pkg['rpm_spec_vers_cmp'];
if (!empty_or_null(pkg['exists_check'])) exists_check = pkg['exists_check'];
if (!empty_or_null(pkg['cves'])) cves = pkg['cves'];
if (unpatched_pkg &&
_release &&
(!exists_check || rpm_exists(release:_release, rpm:exists_check)) &&
unpatched_package_exists(release:_release, package:unpatched_pkg, cves: cves)) flag++;
}
}
if (flag)
{
var extra = NULL;
security_report_v4(
port : 0,
severity : SECURITY_HOLE,
extra : unpatched_packages_report()
);
exit(0);
}
else
{
var tested = pkg_tests_get();
if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
else audit(AUDIT_PACKAGE_NOT_INSTALLED, 'libvncserver / vino');
}
Vendor | Product | Version | CPE |
---|---|---|---|
redhat | enterprise_linux | 6 | cpe:/o:redhat:enterprise_linux:6 |
redhat | enterprise_linux | 7 | cpe:/o:redhat:enterprise_linux:7 |
redhat | enterprise_linux | 8 | cpe:/o:redhat:enterprise_linux:8 |
redhat | enterprise_linux | libvncserver | p-cpe:/a:redhat:enterprise_linux:libvncserver |
redhat | enterprise_linux | vino | p-cpe:/a:redhat:enterprise_linux:vino |
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9941
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9942
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-15127
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-20019
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-20020
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-20022
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-20024
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-20748
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-20749
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-20750
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-7225
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-15681
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-15690
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14397
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14398
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14401
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14402
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14403
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14404
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14405
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-25708