Information

AdvisoryXSA-196
Public release 2016-11-22 12:00
Updated 2016-11-22 12:00
Version 3
CVE(s) CVE-2016-9377 CVE-2016-9378
Title x86 software interrupt injection mis-handled

Files

advisory-196.txt (signed advisory file)
xsa196-0001-x86-emul-Correct-the-IDT-entry-calculation-in-inject.patch
xsa196-0002-x86-svm-Fix-injection-of-software-interrupts.patch

Advisory


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

     Xen Security Advisory CVE-2016-9377,CVE-2016-9378 / XSA-196
                              version 3

             x86 software interrupt injection mis-handled

UPDATES IN VERSION 3
====================

Public release.

ISSUE DESCRIPTION
=================

There are two closely-related bugs.

When Xen emulates instructions which generate software interrupts it
needs to perform a privilege check involving an IDT lookup.  This
check is sometimes erroneously conducted as if the IDT had the format
for a 32-bit guest, when in fact it is in the 64-bit format.  Xen will
then read the wrong part of the IDT and interpret it in an unintended
manner.  (CVE-2016-9377)

When Xen emulates instructions which generate software interrupts, and
chooses to deliver the software interrupt, it may try to use the
method intended for injecting exceptions.  This is incorrect, and
results in a guest crash.  (CVE-2016-9378)

These instructions are not ususally handled by the emulator.
Exploiting the bug requires ability to force use of the emulator.

IMPACT
======

An unprivileged guest user program may be able to crash the guest.

VULNERABLE SYSTEMS
==================

Xen versions 4.5 and newer are vulnerable.  Older versions are not
vulnerable.

The vulnerability is only exposed on AMD hardware lacking the NRip
feature.  AMD hardware with the NRip feature, and all Intel hardware,
is not vulnerable.

Xen prints information about CPU features on boot.  If you see this:
    (XEN) SVM: Supported advanced features:
    ...
    (XEN)  - Next-RIP Saved on #VMEXIT
then you are not vulnerable because you have an AMD CPU with NRip.
If you see this:
    (XEN) VMX: Supported advanced features:
then you are not vulnerable because you have an Intel CPU.

The vulnerability is only exposed on HVM guests.

ARM systems are NOT vulnerable.

MITIGATION
==========

Running only PV guests will avoid this issue.

CREDITS
=======

This issue was discovered by Andrew Cooper of Citrix.

RESOLUTION
==========

Applying the attached patches resolves this issue.

xsa196-000*.patch      xen-unstable, Xen 4.7.x, Xen 4.6.x, Xen 4.5.x

$ sha256sum xsa196*
c4122280f3786416231ae5f0660123446d29e9ac5cd3ffb92784ed36edeec8b7  xsa196-0001-x86-emul-Correct-the-IDT-entry-calculation-in-inject.patch
25671c44c746d4d0e8f7e2b109926c013b440e0bf225156282052ec38536e347  xsa196-0002-x86-svm-Fix-injection-of-software-interrupts.patch
$

DEPLOYMENT DURING EMBARGO
=========================

Deployment of the patches and/or mitigations described above (or
others which are substantially similar) is permitted during the
embargo, even on public-facing systems with untrusted guest users and
administrators.

But: Distribution of updated software is prohibited (except to other
members of the predisclosure list).

Predisclosure list members who wish to deploy significantly different
patches and/or mitigations, please contact the Xen Project Security
Team.

(Note: this during-embargo deployment notice is retained in
post-embargo publicly released Xen Project advisories, even though it
is then no longer applicable.  This is to enable the community to have
oversight of the Xen Project Security Team's decisionmaking.)

For more information about permissible uses of embargoed information,
consult the Xen Project community's agreed Security Policy:
  http://www.xenproject.org/security-policy.html
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJYNDMVAAoJEIP+FMlX6CvZZ7MH/36KnwbAxmRHtUDIpQF/Syoh
Lc8s6gNV1oOzcCpFgz+gSyIOMzp7KWieKQiVX1HbI0lnLYK/sRa77VNV/Y9bUt+Y
y9b9QOZRDHoO92dZ4Ym/hzdtaNkdOQX/JAfy+E5pCGuqPtH/Jy5NuwVL8W7V8PNM
QTHmvbgB4/Y2U6QqWpIP+S7oC0A9iuIf9eekd6ZTpqTadPFylTe2WX22mns1TEtN
3Z0NX737AjQLyUVnUoJ32sITCBk6tGutvvEmOc2Y+4eMrUvKSoafVy+5IZcTGwLp
3ke5sDNN1tOpzmqbXgWXBsVkpjWf2i0NW0dl5jh8/tN5FtrTuByd193dJGSKzEE=
=IE45
-----END PGP SIGNATURE-----


Xenproject.org Security Team