The remote Redhat Enterprise Linux 8 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.
QEMU: vhost-user-gpu: out-of-bounds write in virgl_cmd_get_capset() (CVE-2021-3546)
libslirp 4.0.0, as used in QEMU 4.1.0, has a use-after-free in ip_reass in ip_input.c. (CVE-2019-15890)
hw/ppc/spapr.c in QEMU through 3.1.0 allows Information Exposure because the hypervisor shares the /proc/device-tree/system-id and /proc/device-tree/model system attributes with a guest. (CVE-2019-8934)
A potential DoS flaw was found in the virtio-fs shared file system daemon (virtiofsd) implementation of the QEMU version >= v5.0. Virtio-fs is meant to share a host file system directory with a guest via virtio-fs device. If the guest opens the maximum number of file descriptors under the shared directory, a denial of service may occur. This flaw allows a guest user/process to cause this denial of service on the host. (CVE-2020-10717)
An out-of-bounds read vulnerability was found in the SLiRP networking implementation of the QEMU emulator.
This flaw occurs in the icmp6_send_echoreply() routine while replying to an ICMP echo request, also known as ping. This flaw allows a malicious guest to leak the contents of the host memory, resulting in possible information disclosure. This flaw affects versions of libslirp before 4.3.1. (CVE-2020-10756)
address_space_map in exec.c in QEMU 4.2.0 can trigger a NULL pointer dereference related to BounceBuffer.
(CVE-2020-13659)
In QEMU 4.2.0, a MemoryRegionOps object may lack read/write callback methods, leading to a NULL pointer dereference. (CVE-2020-15469)
A use after free vulnerability in ip_reass() in ip_input.c of libslirp 4.2.0 and prior releases allows crafted packets to cause a denial of service. (CVE-2020-1983)
QEMU 5.0.0 has a use-after-free in hw/usb/hcd-xhci.c because the usb_packet_map return value is not checked. (CVE-2020-25084)
fdctrl_write_data in hw/block/fdc.c in QEMU 5.0.0 has a NULL pointer dereference via a NULL block pointer for the current drive. (CVE-2020-25741)
hw/ide/pci.c in QEMU before 5.1.1 can trigger a NULL pointer dereference because it lacks a pointer check before an ide_cancel_dma_sync call. (CVE-2020-25743)
Several memory leaks were found in the virtio vhost-user GPU device (vhost-user-gpu) of QEMU in versions up to and including 6.0. They exist in contrib/vhost-user-gpu/vhost-user-gpu.c and contrib/vhost-user- gpu/virgl.c due to improper release of memory (i.e., free) after effective lifetime. (CVE-2021-3544)
An information disclosure vulnerability was found in the virtio vhost-user GPU device (vhost-user-gpu) of QEMU in versions up to and including 6.0. The flaw exists in virgl_cmd_get_capset_info() in contrib/vhost- user-gpu/virgl.c and could occur due to the read of uninitialized memory. A malicious guest could exploit this issue to leak memory from the host. (CVE-2021-3545)
A stack overflow vulnerability was found in the Intel HD Audio device (intel-hda) of QEMU. A malicious guest could use this flaw to crash the QEMU process on the host, resulting in a denial of service condition. The highest threat from this vulnerability is to system availability. This flaw affects QEMU versions prior to 7.0.0. (CVE-2021-3611)
A deadlock issue was found in the AHCI controller device of QEMU. It occurs on a software reset (ahci_reset_port) while handling a host-to-device Register FIS (Frame Information Structure) packet from the guest. A privileged user inside the guest could use this flaw to hang the QEMU process on the host, resulting in a denial of service condition. The highest threat from this vulnerability is to system availability. (CVE-2021-3735)
QEMU through 8.0.0 could trigger a division by zero in scsi_disk_reset in hw/scsi/scsi-disk.c because scsi_disk_emulate_mode_select does not prevent s->qdev.blocksize from being 256. This stops QEMU and the guest immediately. (CVE-2023-42467)
QEMU: virtio-pci: improper release of configure vector leads to guest triggerable crash (CVE-2024-4693)
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 qemu. The text
# itself is copyright (C) Red Hat, Inc.
##
include('compat.inc');
if (description)
{
script_id(196182);
script_version("1.0");
script_set_attribute(attribute:"plugin_modification_date", value:"2024/05/11");
script_cve_id(
"CVE-2019-8934",
"CVE-2019-15890",
"CVE-2020-1983",
"CVE-2020-10717",
"CVE-2020-10756",
"CVE-2020-13659",
"CVE-2020-15469",
"CVE-2020-25084",
"CVE-2020-25741",
"CVE-2020-25743",
"CVE-2021-3544",
"CVE-2021-3545",
"CVE-2021-3546",
"CVE-2021-3611",
"CVE-2021-3735",
"CVE-2023-42467",
"CVE-2024-4693"
);
script_xref(name:"IAVB", value:"2020-B-0063-S");
script_name(english:"RHEL 8 : qemu (Unpatched Vulnerability)");
script_set_attribute(attribute:"synopsis", value:
"The remote Red Hat 8 host is affected by multiple vulnerabilities that will not be patched.");
script_set_attribute(attribute:"description", value:
"The remote Redhat Enterprise Linux 8 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.
- QEMU: vhost-user-gpu: out-of-bounds write in virgl_cmd_get_capset() (CVE-2021-3546)
- libslirp 4.0.0, as used in QEMU 4.1.0, has a use-after-free in ip_reass in ip_input.c. (CVE-2019-15890)
- hw/ppc/spapr.c in QEMU through 3.1.0 allows Information Exposure because the hypervisor shares the
/proc/device-tree/system-id and /proc/device-tree/model system attributes with a guest. (CVE-2019-8934)
- A potential DoS flaw was found in the virtio-fs shared file system daemon (virtiofsd) implementation of
the QEMU version >= v5.0. Virtio-fs is meant to share a host file system directory with a guest via
virtio-fs device. If the guest opens the maximum number of file descriptors under the shared directory, a
denial of service may occur. This flaw allows a guest user/process to cause this denial of service on the
host. (CVE-2020-10717)
- An out-of-bounds read vulnerability was found in the SLiRP networking implementation of the QEMU emulator.
This flaw occurs in the icmp6_send_echoreply() routine while replying to an ICMP echo request, also known
as ping. This flaw allows a malicious guest to leak the contents of the host memory, resulting in possible
information disclosure. This flaw affects versions of libslirp before 4.3.1. (CVE-2020-10756)
- address_space_map in exec.c in QEMU 4.2.0 can trigger a NULL pointer dereference related to BounceBuffer.
(CVE-2020-13659)
- In QEMU 4.2.0, a MemoryRegionOps object may lack read/write callback methods, leading to a NULL pointer
dereference. (CVE-2020-15469)
- A use after free vulnerability in ip_reass() in ip_input.c of libslirp 4.2.0 and prior releases allows
crafted packets to cause a denial of service. (CVE-2020-1983)
- QEMU 5.0.0 has a use-after-free in hw/usb/hcd-xhci.c because the usb_packet_map return value is not
checked. (CVE-2020-25084)
- fdctrl_write_data in hw/block/fdc.c in QEMU 5.0.0 has a NULL pointer dereference via a NULL block pointer
for the current drive. (CVE-2020-25741)
- hw/ide/pci.c in QEMU before 5.1.1 can trigger a NULL pointer dereference because it lacks a pointer check
before an ide_cancel_dma_sync call. (CVE-2020-25743)
- Several memory leaks were found in the virtio vhost-user GPU device (vhost-user-gpu) of QEMU in versions
up to and including 6.0. They exist in contrib/vhost-user-gpu/vhost-user-gpu.c and contrib/vhost-user-
gpu/virgl.c due to improper release of memory (i.e., free) after effective lifetime. (CVE-2021-3544)
- An information disclosure vulnerability was found in the virtio vhost-user GPU device (vhost-user-gpu) of
QEMU in versions up to and including 6.0. The flaw exists in virgl_cmd_get_capset_info() in contrib/vhost-
user-gpu/virgl.c and could occur due to the read of uninitialized memory. A malicious guest could exploit
this issue to leak memory from the host. (CVE-2021-3545)
- A stack overflow vulnerability was found in the Intel HD Audio device (intel-hda) of QEMU. A malicious
guest could use this flaw to crash the QEMU process on the host, resulting in a denial of service
condition. The highest threat from this vulnerability is to system availability. This flaw affects QEMU
versions prior to 7.0.0. (CVE-2021-3611)
- A deadlock issue was found in the AHCI controller device of QEMU. It occurs on a software reset
(ahci_reset_port) while handling a host-to-device Register FIS (Frame Information Structure) packet from
the guest. A privileged user inside the guest could use this flaw to hang the QEMU process on the host,
resulting in a denial of service condition. The highest threat from this vulnerability is to system
availability. (CVE-2021-3735)
- QEMU through 8.0.0 could trigger a division by zero in scsi_disk_reset in hw/scsi/scsi-disk.c because
scsi_disk_emulate_mode_select does not prevent s->qdev.blocksize from being 256. This stops QEMU and the
guest immediately. (CVE-2023-42467)
- QEMU: virtio-pci: improper release of configure vector leads to guest triggerable crash (CVE-2024-4693)
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:L/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:L/AC:L/PR:H/UI:N/S:C/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-2021-3546");
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:"2019/02/21");
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:5");
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:kvm");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:qemu-kvm");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:qemu-kvm-ma");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:qemu-kvm-rhev");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:redhat:enterprise_linux:slirp4netns");
script_set_attribute(attribute:"generated_plugin", value:"current");
script_set_attribute(attribute:"stig_severity", value:"II");
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: '8')) audit(AUDIT_OS_NOT, 'Red Hat 8.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':'qemu-kvm', 'release':'8', 'rpm_spec_vers_cmp':TRUE, 'unpatched_pkg':'qemu-kvm', 'cves':['CVE-2019-8934', 'CVE-2020-10717', 'CVE-2020-13659', 'CVE-2020-15469', 'CVE-2020-25084', 'CVE-2020-25741', 'CVE-2020-25743']},
{'reference':'qemu-kvm', 'release':'8', 'rpm_spec_vers_cmp':TRUE, 'unpatched_pkg':'qemu-kvm', 'cves':['CVE-2020-13659', 'CVE-2020-15469', 'CVE-2020-25084', 'CVE-2020-25741', 'CVE-2020-25743', 'CVE-2021-3544', 'CVE-2021-3545', 'CVE-2021-3546', 'CVE-2021-3611', 'CVE-2021-3735', 'CVE-2023-42467', 'CVE-2024-4693']},
{'reference':'slirp4netns', 'release':'8', 'rpm_spec_vers_cmp':TRUE, 'unpatched_pkg':'slirp4netns', 'cves':['CVE-2019-15890', 'CVE-2020-1983', 'CVE-2020-10756']}
]
}
];
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_WARNING,
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, 'qemu-kvm / slirp4netns');
}
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-15890
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-8934
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-10717
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-10756
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-13659
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15469
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-1983
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-25084
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-25741
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-25743
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3544
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3545
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3546
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3611
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3735
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-42467
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-4693