Lucene search

K
nessusThis script is Copyright (C) 2014-2021 and is owned by Tenable, Inc. or an Affiliate thereof.ORACLEVM_OVMSA-2012-0039.NASL
HistoryNov 26, 2014 - 12:00 a.m.

OracleVM 3.1 : xen (OVMSA-2012-0039)

2014-11-2600:00:00
This script is Copyright (C) 2014-2021 and is owned by Tenable, Inc. or an Affiliate thereof.
www.tenable.com
14

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

  • console: bounds check whenever changing the cursor due to an escape code The device model used by fully virtualised (HVM) domains, qemu, does not properly handle escape VT100 sequences when emulating certain devices with a virtual console backend. (CVE-2012-3515)

  • x86/pvhvm: properly range-check PHYSDEVOP_map_pirq/MAP_PIRQ_TYPE_GSI PHYSDEVOP_map_pirq with MAP_PIRQ_TYPE_GSI does not range check map->index.
    This is being used as a array index, and hence must be validated before use. A malicious HVM guest kernel can crash the host. It might also be able to read hypervisor or guest memory. (CVE-2012-3496)

  • xen: Don’t BUG_ON PoD operations on a non-translated guest. XENMEM_populate_physmap can be called with invalid flags. By calling it with MEMF_populate_on_demand flag set, a BUG can be triggered if a translating paging mode is not being used.
    (CVE-2012-3496)

  • xen: handle out-of-pirq condition correctly in PHYSDEVOP_get_free_pirq PHYSDEVOP_get_free_pirq does not check that its call to get_free_pirq succeeded, and if it fails will use the error code as an array index.
    (CVE-2012-3495)

  • xen: prevent a 64 bit guest setting reserved bits in DR7 The upper 32 bits of this register are reserved and should be written as zero. (CVE-2012-3494)

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

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

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

  script_cve_id("CVE-2012-3494", "CVE-2012-3495", "CVE-2012-3496", "CVE-2012-3515");
  script_bugtraq_id(55400, 55406, 55412, 55413);

  script_name(english:"OracleVM 3.1 : xen (OVMSA-2012-0039)");
  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 :

  - console: bounds check whenever changing the cursor due
    to an escape code The device model used by fully
    virtualised (HVM) domains, qemu, does not properly
    handle escape VT100 sequences when emulating certain
    devices with a virtual console backend. (CVE-2012-3515)

  - x86/pvhvm: properly range-check
    PHYSDEVOP_map_pirq/MAP_PIRQ_TYPE_GSI PHYSDEVOP_map_pirq
    with MAP_PIRQ_TYPE_GSI does not range check map->index.
    This is being used as a array index, and hence must be
    validated before use. A malicious HVM guest kernel can
    crash the host. It might also be able to read hypervisor
    or guest memory. (CVE-2012-3496)

  - xen: Don't BUG_ON PoD operations on a non-translated
    guest. XENMEM_populate_physmap can be called with
    invalid flags. By calling it with
    MEMF_populate_on_demand flag set, a BUG can be triggered
    if a translating paging mode is not being used.
    (CVE-2012-3496)

  - xen: handle out-of-pirq condition correctly in
    PHYSDEVOP_get_free_pirq PHYSDEVOP_get_free_pirq does not
    check that its call to get_free_pirq succeeded, and if
    it fails will use the error code as an array index.
    (CVE-2012-3495)

  - xen: prevent a 64 bit guest setting reserved bits in DR7
    The upper 32 bits of this register are reserved and
    should be written as zero. (CVE-2012-3494)"
  );
  # https://oss.oracle.com/pipermail/oraclevm-errata/2012-September/000099.html
  script_set_attribute(
    attribute:"see_also",
    value:"http://www.nessus.org/u?f046f12a"
  );
  script_set_attribute(
    attribute:"solution", 
    value:"Update the affected xen / xen-devel / xen-tools packages."
  );
  script_set_cvss_base_vector("CVSS2#AV:L/AC:L/Au:N/C:C/I:C/A:C");
  script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/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-devel");
  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.1");

  script_set_attribute(attribute:"vuln_publication_date", value:"2012/11/23");
  script_set_attribute(attribute:"patch_publication_date", value:"2012/09/05");
  script_set_attribute(attribute:"plugin_publication_date", value:"2014/11/26");
  script_set_attribute(attribute:"generated_plugin", value:"current");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_copyright(english:"This script is Copyright (C) 2014-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\.1" + "(\.[0-9]|$)", string:release)) audit(AUDIT_OS_NOT, "OracleVM 3.1", "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.1", reference:"xen-4.1.2-18.el5.14")) flag++;
if (rpm_check(release:"OVS3.1", reference:"xen-devel-4.1.2-18.el5.14")) flag++;
if (rpm_check(release:"OVS3.1", reference:"xen-tools-4.1.2-18.el5.14")) flag++;

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