openSUSE Security Advisory for qemu package(s) fix Spectre v2 vulnerabilitie
# Copyright (C) 2018 Greenbone Networks GmbH
# Some text descriptions might be excerpted from (a) referenced
# source(s), and are Copyright (C) by the respective right holder(s).
#
# SPDX-License-Identifier: GPL-2.0-or-later
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
if(description)
{
script_oid("1.3.6.1.4.1.25623.1.0.851724");
script_version("2023-11-03T16:10:08+0000");
script_tag(name:"last_modification", value:"2023-11-03 16:10:08 +0000 (Fri, 03 Nov 2023)");
script_tag(name:"creation_date", value:"2018-03-25 08:22:33 +0200 (Sun, 25 Mar 2018)");
script_cve_id("CVE-2017-15119", "CVE-2017-15124", "CVE-2017-16845", "CVE-2017-17381",
"CVE-2017-18043", "CVE-2017-5715", "CVE-2018-5683", "CVE-2018-7550");
script_tag(name:"cvss_base", value:"7.8");
script_tag(name:"cvss_base_vector", value:"AV:N/AC:L/Au:N/C:N/I:N/A:C");
script_tag(name:"severity_vector", value:"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:H");
script_tag(name:"severity_origin", value:"NVD");
script_tag(name:"severity_date", value:"2020-09-10 17:42:00 +0000 (Thu, 10 Sep 2020)");
script_tag(name:"qod_type", value:"package");
script_name("openSUSE: Security Advisory for qemu (openSUSE-SU-2018:0780-1)");
script_tag(name:"summary", value:"The remote host is missing an update for the 'qemu'
package(s) announced via the referenced advisory.");
script_tag(name:"vuldetect", value:"Checks if a vulnerable package version is present on the target host.");
script_tag(name:"insight", value:"This update for qemu fixes the following issues:
This update has the next round of Spectre v2 related patches, which now
integrate with corresponding changes in libvirt. (CVE-2017-5715
bsc#1068032)
The January 2018 release of qemu initially addressed the Spectre v2
vulnerability for KVM guests by exposing the spec-ctrl feature for all x86
vcpu types, which was the quick and dirty approach, but not the proper
solution.
We replaced our initial patch by the patches from upstream.
This update defines spec_ctrl and ibpb cpu feature flags as well as new
cpu models which are clones of existing models with either -IBRS or -IBPB
added to the end of the model name. These new vcpu models explicitly
include the new feature(s), whereas the feature flags can be added to the
cpu parameter as with other features. In short, for continued Spectre v2
protection, ensure that either the appropriate cpu feature flag is added
to the QEMU command-line, or one of the new cpu models is used.
Although migration from older versions is supported, the new cpu features
won't be properly exposed to the guest until it is restarted with the cpu
features explicitly added. A reboot is insufficient.
A warning patch is added which attempts to detect a migration from a qemu
version which had the quick and dirty fix (it only detects certain cases,
but hopefully is helpful.) For additional information on Spectre v2 as it
relates to QEMU, see the linked references.
A patch is added to continue to detect Spectre v2 mitigation features (as
shown by cpuid), and if found provide that feature to guests, even if
running on older KVM (kernel) versions which do not yet expose that
feature to QEMU. (bsc#1082276)
These two patches will be removed when we can reasonably assume everyone
is running with the appropriate updates.
Spectre fixes for IBM Z Series were included by providing more hw features
to guests (bsc#1076813)
Also security fixes for the following CVE issues are included:
- CVE-2017-17381: The Virtio Vring implementation in QEMU allowed local OS
guest users to cause a denial of service (divide-by-zero error and QEMU
process crash) by unsetting vring alignment while updating Virtio rings.
(bsc#1071228)
- CVE-2017-16845: The PS2 driver in Qemu did not validate 'rptr' and
'count' values during guest migration, leading to out-of-bounds access.
(bsc#1068613)
- CVE-2017-15119: The Network Block Device (NBD) serve.
Description truncated, please see the referenced URL(s) for more information.");
script_tag(name:"affected", value:"qemu on openSUSE Leap 42.3");
script_tag(name:"solution", value:"Please install the updated package(s).");
script_xref(name:"openSUSE-SU", value:"2018:0780-1");
script_xref(name:"URL", value:"https://lists.opensuse.org/opensuse-security-announce/2018-03/msg00053.html");
script_xref(name:"URL", value:"https://www.qemu.org/2018/02/14/qemu-2-11-1-and-spectre-update/");
script_tag(name:"solution_type", value:"VendorFix");
script_category(ACT_GATHER_INFO);
script_copyright("Copyright (C) 2018 Greenbone Networks GmbH");
script_family("SuSE Local Security Checks");
script_dependencies("gather-package-list.nasl");
script_mandatory_keys("ssh/login/suse", "ssh/login/rpms", re:"ssh/login/release=openSUSELeap42\.3");
exit(0);
}
include("revisions-lib.inc");
include("pkg-lib-rpm.inc");
release = rpm_get_ssh_release();
if(!release)
exit(0);
res = "";
report = "";
if(release == "openSUSELeap42.3") {
if(!isnull(res = isrpmvuln(pkg:"qemu-linux-user", rpm:"qemu-linux-user~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-linux-user-debuginfo", rpm:"qemu-linux-user-debuginfo~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-linux-user-debugsource", rpm:"qemu-linux-user-debugsource~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-ipxe", rpm:"qemu-ipxe~1.0.0~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-seabios", rpm:"qemu-seabios~1.10.2~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-sgabios", rpm:"qemu-sgabios~8~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-vgabios", rpm:"qemu-vgabios~1.10.2~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu", rpm:"qemu~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-arm", rpm:"qemu-arm~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-arm-debuginfo", rpm:"qemu-arm-debuginfo~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-block-curl", rpm:"qemu-block-curl~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-block-curl-debuginfo", rpm:"qemu-block-curl-debuginfo~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-block-dmg", rpm:"qemu-block-dmg~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-block-dmg-debuginfo", rpm:"qemu-block-dmg-debuginfo~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-block-iscsi", rpm:"qemu-block-iscsi~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-block-iscsi-debuginfo", rpm:"qemu-block-iscsi-debuginfo~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-block-rbd", rpm:"qemu-block-rbd~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-block-rbd-debuginfo", rpm:"qemu-block-rbd-debuginfo~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-block-ssh", rpm:"qemu-block-ssh~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-block-ssh-debuginfo", rpm:"qemu-block-ssh-debuginfo~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-debugsource", rpm:"qemu-debugsource~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-extra", rpm:"qemu-extra~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-extra-debuginfo", rpm:"qemu-extra-debuginfo~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-guest-agent", rpm:"qemu-guest-agent~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-guest-agent-debuginfo", rpm:"qemu-guest-agent-debuginfo~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-ksm", rpm:"qemu-ksm~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-kvm", rpm:"qemu-kvm~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-lang", rpm:"qemu-lang~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-ppc", rpm:"qemu-ppc~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-ppc-debuginfo", rpm:"qemu-ppc-debuginfo~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-s390", rpm:"qemu-s390~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-s390-debuginfo", rpm:"qemu-s390-debuginfo~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-testsuite", rpm:"qemu-testsuite~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-tools", rpm:"qemu-tools~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-tools-debuginfo", rpm:"qemu-tools-debuginfo~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-x86", rpm:"qemu-x86~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(!isnull(res = isrpmvuln(pkg:"qemu-x86-debuginfo", rpm:"qemu-x86-debuginfo~2.9.1~41.1", rls:"openSUSELeap42.3"))) {
report += res;
}
if(report != "") {
security_message(data:report);
} else if(__pkg_match) {
exit(99);
}
exit(0);
}
exit(0);
Transform Your Security Services
Elevate your offerings with Vulners' advanced Vulnerability Intelligence. Contact us for a demo and discover the difference comprehensive, actionable intelligence can make in your security strategy.
Book a live demo