Lucene search

K

Xen CMPXCHG8B Emulation Information Disclosure (XSA-200)

Xen CMPXCHG8B Emulation Information Disclosure (XSA-200) affects Xen hypervisor, allowing information disclosure via x86 instruction flaw

Show more
Related
Refs
Code
ReporterTitlePublishedViews
Family
Prion
Design/Logic Flaw
26 Jan 201715:59
prion
CVE
CVE-2016-9932
26 Jan 201715:59
cve
NVD
CVE-2016-9932
26 Jan 201715:59
nvd
Cvelist
CVE-2016-9932
26 Jan 201715:00
cvelist
RedhatCVE
CVE-2016-9932
13 Dec 201615:28
redhatcve
Xen Project
x86 CMPXCHG8B emulation fails to ignore operand size override
13 Dec 201612:00
xen
Debian CVE
CVE-2016-9932
26 Jan 201715:59
debiancve
Tenable Nessus
FreeBSD : xen-kernel -- x86 CMPXCHG8B emulation fails to ignore operand size override (80a897a2-c1a6-11e6-ae1b-002590263bf5)
14 Dec 201600:00
nessus
Tenable Nessus
RHEL 5 : xsa200_xen (Unpatched Vulnerability)
11 May 202400:00
nessus
Tenable Nessus
Citrix XenServer Multiple Vulnerabilities (CTX219378)
25 Jan 201700:00
nessus
Rows per page
#
# (C) Tenable Network Security, Inc.
#

include("compat.inc");

if (description)
{
  script_id(96957);
  script_version("1.7");
  script_cvs_date("Date: 2019/11/13");

  script_cve_id("CVE-2016-9932");
  script_bugtraq_id(94863);

  script_name(english:"Xen CMPXCHG8B Emulation Information Disclosure (XSA-200)");
  script_summary(english:"Checks 'xl info' output for the Xen hypervisor version.");

  script_set_attribute(attribute:"synopsis", value:
"The remote Xen hypervisor installation is missing a security update.");
  script_set_attribute(attribute:"description", value:
"According to its self-reported version number, the Xen hypervisor
installed on the remote host is missing a security update. It is,
therefore, affected by an information disclosure vulnerability due to
a flaw in the x86 instruction CMPXCHG8B when handling prefixes. This
is triggered because legacy operand size overrides are not properly
ignored. A guest attacker can exploit this issue to disclose
potentially sensitive information from the hypervisor stack of the
host system.

Please note the following items :

  - Only x86 systems are affected. ARM systems are not
    affected.

  - On Xen version 4.6 and earlier, the vulnerability is
    exposed to all HVM guest user processes, including
    unprivileged processes.

  - On Xen version 4.7, the vulnerability is exposed only to
    HVM guest user processes granted a degree of privilege
    (e.g., direct hardware access) by the guest
    administrator, or else to all user processes when the VM
    has been explicitly configured with a non-default CPU
    vendor string (in xm/xl, this would be done with a
    'cpuid=' domain config option).

Note that Nessus has not tested for this vulnerability but has instead
relied only on the changeset versions based on the xen.git change log.
Nessus did not check guest hardware configurations or if patches were
applied manually to the source code before a recompile and reinstall.");
  script_set_attribute(attribute:"see_also", value:"https://xenbits.xen.org/xsa/advisory-200.html");
  script_set_attribute(attribute:"see_also", value:"https://xenbits.xen.org/gitweb/?p=xen.git;a=summary");
  script_set_attribute(attribute:"solution", value:
"Apply the appropriate patch according to the vendor advisory.");
  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:L/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-2016-9932");

  script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"false");

  script_set_attribute(attribute:"vuln_publication_date", value:"2016/12/13");
  script_set_attribute(attribute:"patch_publication_date", value:"2016/12/13");
  script_set_attribute(attribute:"plugin_publication_date", value:"2017/02/02");

  script_set_attribute(attribute:"potential_vulnerability", value:"true");
  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/o:xen:xen");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Misc.");

  script_copyright(english:"This script is Copyright (C) 2017-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");

  script_dependencies("xen_server_detect.nbin");
  script_require_keys("installed_sw/Xen Hypervisor", "Settings/ParanoidReport");

  exit(0);
}

include("audit.inc");
include("global_settings.inc");
include("install_func.inc");
include("misc_func.inc");

app_name = "Xen Hypervisor";
install  = get_single_install(app_name:app_name);
if (report_paranoia < 2) audit(AUDIT_PARANOID);

version         = install['version'];
display_version = install['display_version'];
path            = install['path'];
managed_status  = install['Managed status'];
changeset       = install['Changeset'];

if (!empty_or_null(changeset))
  display_version += " (changeset " + changeset + ")";

# Installations that are vendor-managed are handled by OS-specific local package checks
if (managed_status == "managed")
  audit(AUDIT_INST_PATH_NOT_VULN, app_name, display_version, path);

fixes['4.4']['fixed_ver']           = '4.4.4';
fixes['4.4']['fixed_ver_display']   = '4.4.4 (changeset 619db7d)';
fixes['4.4']['affected_ver_regex']  = '^4\\.4\\.';
fixes['4.4']['affected_changesets'] = make_list("149c34a", "1c1bfc1",
  "6639a20", "14fa85a", "1827d52", "e8a46a2", "ed77368", "488b7d2",
  "dfddbf3", "2f3e08d", "fbe0fb4", "0fe7d69", "36a5a87", "27f0143",
  "ec5925c", "aea2669", "8ce712f", "45c1210", "a0b99ab", "9b2061d",
  "35fe0d6", "7e42cb6", "c1f9a26", "0eb5ef2", "98d7429", "2dbe363",
  "5f07492", "3534322", "6428217", "17d7046", "7bd50f1", "6f76ac2",
  "5519488", "04e831a", "9b7d6d2", "76a62af", "0006b20", "08a1d2b",
  "0b5c527", "6e86c87", "cbbb4d1", "e9c81e9", "01311b9", "09f9f79",
  "ab6f899", "6717d99", "5cf1b52", "24ebffa", "c2f8ab3", "0ae1e71",
  "83c5e46", "02426e9", "46b8f78", "ff87c9a", "a611ed5");

fixes['4.5']['fixed_ver']           = '4.5.5';
fixes['4.5']['fixed_ver_display']   = '4.5.5 (changeset 37281bc)';
fixes['4.5']['affected_ver_regex']  = '^4\\.5\\.';
fixes['4.5']['affected_changesets'] = make_list("27be856", "bdf3ef1",
  "cc325c0", "8e7b84d", "387b8ae", "34fbae7", "1530da2", "274a1f6",
  "b679cfa", "877b760", "cfe165d", "84e4e56", "e4ae4b0");

fixes['4.6']['fixed_ver']           = '4.6.5';
fixes['4.6']['fixed_ver_display']   = '4.6.5-pre (changeset ac699ed)';
fixes['4.6']['affected_ver_regex']  = '^4\\.6\\.';
fixes['4.6']['affected_changesets'] = make_list("57e3ac3", "7789292",
  "62add85", "22f70a3", "0ba9562", "7902dba", "5f85ab0", "7bd27ba",
  "514173d", "a4902ca", "c03035b", "e0fbb85", "fcab9d3", "46529a1",
  "ffda122", "805bb93");

fixes['4.7']['fixed_ver']           = '4.7.2';
fixes['4.7']['fixed_ver_display']   = '4.7.2-pre (changeset e0ea04d)';
fixes['4.7']['affected_ver_regex']  = '^4\\.7\\.';
fixes['4.7']['affected_changesets'] = make_list("4be57d3", "e144f21",
  "0726cb5", "32282af", "cf21f0c", "a2d232d", "206fc70", "a6b0650",
  "98eaf9c", "1b65a34", "8ce2238", "2cd9fa0", "42bc34b", "e98e17e",
  "0561a33");

fix = NULL;
foreach ver_branch (keys(fixes))
{
  if (version =~ fixes[ver_branch]['affected_ver_regex'])
  {
    ret = ver_compare(ver:version, fix:fixes[ver_branch]['fixed_ver']);
    if (ret < 0)
      fix = fixes[ver_branch]['fixed_ver_display'];
    else if (ret == 0)
    {
      if (empty_or_null(changeset))
        fix = fixes[ver_branch]['fixed_ver_display'];
      else
        foreach affected_changeset (fixes[ver_branch]['affected_changesets'])
          if (changeset == affected_changeset)
            fix = fixes[ver_branch]['fixed_ver_display'];
    }
  }
}

if (empty_or_null(fix))
  audit(AUDIT_INST_PATH_NOT_VULN, app_name, display_version, path);

items  = make_array("Installed version", display_version,
                    "Fixed version", fix,
                    "Path", path);
order  = make_list("Path", "Installed version", "Fixed version");
report = report_items_str(report_items:items, ordered_fields:order) + '\n';

security_report_v4(port:0, extra:report, severity:SECURITY_NOTE);

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