According to the versions of the kernel packages installed, the EulerOS Virtualization for ARM 64 installation on the remote host is affected by the following vulnerabilities :
Note that Tenable Network Security has extracted the preceding description block directly from the EulerOS security advisory. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
#%NASL_MIN_LEVEL 70300
#
# (C) Tenable Network Security, Inc.
#
include('deprecated_nasl_level.inc');
include('compat.inc');
if (description)
{
script_id(126544);
script_version("1.6");
script_set_attribute(attribute:"plugin_modification_date", value:"2022/12/06");
script_cve_id(
"CVE-2019-11477",
"CVE-2019-11478",
"CVE-2019-11479",
"CVE-2019-11833",
"CVE-2019-12382"
);
script_xref(name:"CEA-ID", value:"CEA-2019-0456");
script_name(english:"EulerOS Virtualization for ARM 64 3.0.2.0 : kernel (EulerOS-SA-2019-1702)");
script_set_attribute(attribute:"synopsis", value:
"The remote EulerOS Virtualization for ARM 64 host is missing multiple security
updates.");
script_set_attribute(attribute:"description", value:
"According to the versions of the kernel packages installed, the
EulerOS Virtualization for ARM 64 installation on the remote host is
affected by the following vulnerabilities :
- The kernel package contains the Linux kernel (vmlinuz),
the core of any Linux operating system. The kernel
handles the basic functions of the operating system:
memory allocation, process allocation, device input and
output, etc. Security Fix(es):An excessive resource
consumption flaw was found in the way the Linux
kernel's networking subsystem processed TCP segments.
If the Maximum Segment Size (MSS) of a TCP connection
was set to low values, such as 48 bytes, it can leave
as little as 8 bytes for the user data, which
significantly increases the Linux kernel's resource
(CPU, Memory, and Bandwidth) utilization. A remote
attacker could use this flaw to cause a denial of
service (DoS) by repeatedly sending network traffic on
a TCP connection with low TCP MSS.(CVE-2019-11479)An
excessive resource consumption flaw was found in the
way the Linux kernel's networking subsystem processed
TCP Selective Acknowledgment (SACK) segments. While
processing SACK segments, the Linux kernel's socket
buffer (SKB) data structure becomes fragmented, which
leads to increased resource utilization to traverse and
process these fragments as further SACK segments are
received on the same TCP connection. A remote attacker
could use this flaw to cause a denial of service (DoS)
by sending a crafted sequence of SACK segments on a TCP
connection.(CVE-2019-11478)An integer overflow flaw was
found in the way the Linux kernel's networking
subsystem processed TCP Selective Acknowledgment (SACK)
segments. While processing SACK segments, the Linux
kernel's socket buffer (SKB) data structure becomes
fragmented. Each fragment is about TCP maximum segment
size (MSS) bytes. To efficiently process SACK blocks,
the Linux kernel merges multiple fragmented SKBs into
one, potentially overflowing the variable holding the
number of segments. A remote attacker could use this
flaw to crash the Linux kernel by sending a crafted
sequence of SACK segments on a TCP connection with
small value of TCP MSS, resulting in a denial of
service (DoS).(CVE-2019-11477)A flaw was found in the
Linux kernel's implementation of ext4 extent
management. The kernel doesn't correctly initialize
memory regions in the extent tree block which may be
exported to a local user to obtain sensitive
information by reading empty/uninitialized data from
the filesystem.(CVE-2019-11833)** DISPUTED ** An issue
was discovered in drm_load_edid_firmware in
drivers/gpu/drm/drm_edid_load.c in the Linux kernel
through 5.1.5. There is an unchecked kstrdup of fwstr,
which might allow an attacker to cause a denial of
service (NULL pointer dereference and system crash).
NOTE: The vendor disputes this issues as not being a
vulnerability because kstrdup() returning NULL is
handled sufficiently and there is no chance for a NULL
pointer dereference.(CVE-2019-12382)Note1:
kernel-4.19.36-vhulk1907.1.0.h529 and earlier versions
in EulerOS Virtualization for ARM 64 3.0.2.0 return
incorrect time information when executing the uname -a
command.Note2: The kernel version number naming format
has been changed after 4.19.36-1.2.184.aarch64, the new
version format is 4.19.36-vhulk1907.1.0.hxxx.aarch64,
which may lead to false positives of this security
advisory.
Note that Tenable Network Security has extracted the preceding
description block directly from the EulerOS security advisory. Tenable
has attempted to automatically clean and format it as much as possible
without introducing additional issues.");
# https://developer.huaweicloud.com/ict/en/site-euleros/euleros/security-advisories/EulerOS-SA-2019-1702
script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?9c8f7a45");
script_set_attribute(attribute:"solution", value:
"Update the affected kernel packages.");
script_set_cvss_base_vector("CVSS2#AV:L/AC:L/Au:N/C:P/I:N/A:N");
script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N");
script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2019-11833");
script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
script_set_attribute(attribute:"patch_publication_date", value:"2019/07/10");
script_set_attribute(attribute:"plugin_publication_date", value:"2019/07/09");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:kernel");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:kernel-devel");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:kernel-headers");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:kernel-tools");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:kernel-tools-libs");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:kernel-tools-libs-devel");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:perf");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:huawei:euleros:python-perf");
script_set_attribute(attribute:"cpe", value:"cpe:/o:huawei:euleros:uvp:3.0.2.0");
script_set_attribute(attribute:"generated_plugin", value:"current");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"Huawei Local Security Checks");
script_copyright(english:"This script is Copyright (C) 2019-2022 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("ssh_get_info.nasl");
script_require_keys("Host/local_checks_enabled", "Host/cpu", "Host/EulerOS/release", "Host/EulerOS/rpm-list", "Host/EulerOS/uvp_version");
exit(0);
}
include("audit.inc");
include("global_settings.inc");
include("rpm.inc");
if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
release = get_kb_item("Host/EulerOS/release");
if (isnull(release) || release !~ "^EulerOS") audit(AUDIT_OS_NOT, "EulerOS");
uvp = get_kb_item("Host/EulerOS/uvp_version");
if (uvp != "3.0.2.0") audit(AUDIT_OS_NOT, "EulerOS Virtualization 3.0.2.0");
if (!get_kb_item("Host/EulerOS/rpm-list")) audit(AUDIT_PACKAGE_LIST_MISSING);
cpu = get_kb_item("Host/cpu");
if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
if ("x86_64" >!< cpu && cpu !~ "^i[3-6]86$" && "aarch64" >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "EulerOS", cpu);
if ("aarch64" >!< cpu) audit(AUDIT_ARCH_NOT, "aarch64", cpu);
flag = 0;
pkgs = ["kernel-4.19.36-1.2.184",
"kernel-devel-4.19.36-1.2.184",
"kernel-headers-4.19.36-1.2.184",
"kernel-tools-4.19.36-1.2.184",
"kernel-tools-libs-4.19.36-1.2.184",
"kernel-tools-libs-devel-4.19.36-1.2.184",
"perf-4.19.36-1.2.184",
"python-perf-4.19.36-1.2.184"];
foreach (pkg in pkgs)
if (rpm_check(release:"EulerOS-2.0", reference:pkg)) flag++;
if (flag)
{
security_report_v4(
port : 0,
severity : SECURITY_NOTE,
extra : rpm_report_get()
);
exit(0);
}
else
{
tested = pkg_tests_get();
if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
else audit(AUDIT_PACKAGE_NOT_INSTALLED, "kernel");
}