Lucene search

K
nessusThis script is Copyright (C) 2016-2021 and is owned by Tenable, Inc. or an Affiliate thereof.ORACLEVM_OVMSA-2016-0171.NASL
HistoryDec 08, 2016 - 12:00 a.m.

OracleVM 3.3 : xen (OVMSA-2016-0171)

2016-12-0800:00:00
This script is Copyright (C) 2016-2021 and is owned by Tenable, Inc. or an Affiliate thereof.
www.tenable.com
19

3.7 Low

CVSS2

Attack Vector

LOCAL

Attack Complexity

HIGH

Authentication

NONE

Confidentiality Impact

PARTIAL

Integrity Impact

PARTIAL

Availability Impact

PARTIAL

AV:L/AC:H/Au:N/C:P/I:P/A:P

7.5 High

CVSS3

Attack Vector

LOCAL

Attack Complexity

HIGH

Privileges Required

HIGH

User Interaction

NONE

Scope

CHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.0/AV:L/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H

0.001 Low

EPSS

Percentile

26.7%

The remote OracleVM system is missing necessary patches to address critical security updates :

  • qemu_up: ioport_read, ioport_write: be defensive about 32-bit addresses On x86, ioport addresses are 16-bit.
    That these functions take 32-bit arguments is a mistake.
    Changing the argument type to 16-bit will discard the top bits of any erroneous values from elsewhere in qemu.
    Also, check just before use that the value is in range.
    (This turns an ill-advised change to MAX_IOPORTS into a possible guest crash rather than a privilege escalation vulnerability.) And, in the Xen ioreq processor, clamp incoming ioport addresses to 16-bit values. Xen will never write >16-bit values but the guest may have access to the ioreq ring. We want to defend the rest of the qemu code from wrong values. This is XSA-199.
    (CVE-2016-9637)

  • qemu: ioport_read, ioport_write: be defensive about 32-bit addresses On x86, ioport addresses are 16-bit.
    That these functions take 32-bit arguments is a mistake.
    Changing the argument type to 16-bit will discard the top bits of any erroneous values from elsewhere in qemu.
    Also, check just before use that the value is in range.
    (This turns an ill-advised change to MAX_IOPORTS into a possible guest crash rather than a privilege escalation vulnerability.) And, in the Xen ioreq processor, clamp incoming ioport addresses to 16-bit values. Xen will never write >16-bit values but the guest may have access to the ioreq ring. We want to defend the rest of the qemu code from wrong values. This is XSA-199.
    (CVE-2016-9637)

#%NASL_MIN_LEVEL 70300
#
# (C) Tenable Network Security, Inc.
#
# The package checks in this plugin were extracted from OracleVM
# Security Advisory OVMSA-2016-0171.
#

include('deprecated_nasl_level.inc');
include('compat.inc');

if (description)
{
  script_id(95618);
  script_version("3.15");
  script_set_attribute(attribute:"plugin_modification_date", value:"2021/01/04");

  script_cve_id("CVE-2016-9637");

  script_name(english:"OracleVM 3.3 : xen (OVMSA-2016-0171)");
  script_summary(english:"Checks the RPM output for the updated packages.");

  script_set_attribute(
    attribute:"synopsis", 
    value:"The remote OracleVM host is missing one or more security updates."
  );
  script_set_attribute(
    attribute:"description", 
    value:
"The remote OracleVM system is missing necessary patches to address
critical security updates :

  - qemu_up: ioport_read, ioport_write: be defensive about
    32-bit addresses On x86, ioport addresses are 16-bit.
    That these functions take 32-bit arguments is a mistake.
    Changing the argument type to 16-bit will discard the
    top bits of any erroneous values from elsewhere in qemu.
    Also, check just before use that the value is in range.
    (This turns an ill-advised change to MAX_IOPORTS into a
    possible guest crash rather than a privilege escalation
    vulnerability.) And, in the Xen ioreq processor, clamp
    incoming ioport addresses to 16-bit values. Xen will
    never write >16-bit values but the guest may have access
    to the ioreq ring. We want to defend the rest of the
    qemu code from wrong values. This is XSA-199.
    (CVE-2016-9637)

  - qemu: ioport_read, ioport_write: be defensive about
    32-bit addresses On x86, ioport addresses are 16-bit.
    That these functions take 32-bit arguments is a mistake.
    Changing the argument type to 16-bit will discard the
    top bits of any erroneous values from elsewhere in qemu.
    Also, check just before use that the value is in range.
    (This turns an ill-advised change to MAX_IOPORTS into a
    possible guest crash rather than a privilege escalation
    vulnerability.) And, in the Xen ioreq processor, clamp
    incoming ioport addresses to 16-bit values. Xen will
    never write >16-bit values but the guest may have access
    to the ioreq ring. We want to defend the rest of the
    qemu code from wrong values. This is XSA-199.
    (CVE-2016-9637)"
  );
  # https://oss.oracle.com/pipermail/oraclevm-errata/2016-December/000598.html
  script_set_attribute(
    attribute:"see_also",
    value:"http://www.nessus.org/u?f42439e2"
  );
  script_set_attribute(
    attribute:"solution", 
    value:"Update the affected xen / xen-tools packages."
  );
  script_set_cvss_base_vector("CVSS2#AV:L/AC:H/Au:N/C:P/I:P/A:P");
  script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
  script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"false");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:oracle:vm:xen");
  script_set_attribute(attribute:"cpe", value:"p-cpe:/a:oracle:vm:xen-tools");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:oracle:vm_server:3.3");

  script_set_attribute(attribute:"vuln_publication_date", value:"2017/02/17");
  script_set_attribute(attribute:"patch_publication_date", value:"2016/12/07");
  script_set_attribute(attribute:"plugin_publication_date", value:"2016/12/08");
  script_set_attribute(attribute:"generated_plugin", value:"current");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_copyright(english:"This script is Copyright (C) 2016-2021 and is owned by Tenable, Inc. or an Affiliate thereof.");
  script_family(english:"OracleVM Local Security Checks");

  script_dependencies("ssh_get_info.nasl");
  script_require_keys("Host/local_checks_enabled", "Host/OracleVM/release", "Host/OracleVM/rpm-list");

  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/OracleVM/release");
if (isnull(release) || "OVS" >!< release) audit(AUDIT_OS_NOT, "OracleVM");
if (! preg(pattern:"^OVS" + "3\.3" + "(\.[0-9]|$)", string:release)) audit(AUDIT_OS_NOT, "OracleVM 3.3", "OracleVM " + release);
if (!get_kb_item("Host/OracleVM/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$") audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, "OracleVM", cpu);
if ("x86_64" >!< cpu) audit(AUDIT_ARCH_NOT, "x86_64", cpu);

flag = 0;
if (rpm_check(release:"OVS3.3", reference:"xen-4.3.0-55.el6.119.62")) flag++;
if (rpm_check(release:"OVS3.3", reference:"xen-tools-4.3.0-55.el6.119.62")) flag++;

if (flag)
{
  if (report_verbosity > 0) security_note(port:0, extra:rpm_report_get());
  else security_note(0);
  exit(0);
}
else
{
  tested = pkg_tests_get();
  if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
  else audit(AUDIT_PACKAGE_NOT_INSTALLED, "xen / xen-tools");
}
VendorProductVersionCPE
oraclevmxenp-cpe:/a:oracle:vm:xen
oraclevmxen-toolsp-cpe:/a:oracle:vm:xen-tools
oraclevm_server3.3cpe:/o:oracle:vm_server:3.3

3.7 Low

CVSS2

Attack Vector

LOCAL

Attack Complexity

HIGH

Authentication

NONE

Confidentiality Impact

PARTIAL

Integrity Impact

PARTIAL

Availability Impact

PARTIAL

AV:L/AC:H/Au:N/C:P/I:P/A:P

7.5 High

CVSS3

Attack Vector

LOCAL

Attack Complexity

HIGH

Privileges Required

HIGH

User Interaction

NONE

Scope

CHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.0/AV:L/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H

0.001 Low

EPSS

Percentile

26.7%