Advisory XSA-158
Public release 2015-12-08 11:29
Updated 2015-12-10 13:55
Version 4
CVE(s) CVE-2015-8338
Title long running memory operations on ARM


advisory-158.txt (signed advisory file)


Hash: SHA1

            Xen Security Advisory CVE-2015-8338 / XSA-158
                              version 4

                long running memory operations on ARM


Mention that the original patches had two problems, supplying an
incremental patch.


Certain HYPERVISOR_memory_op subops take page order inputs, with so far
insufficient enforcement of limits thereof. In particular, for all of
XENMEM_increase_reservation, XENMEM_populate_physmap, and
XENMEM_exchange the order was limited to 9 only for guests without
physical devices assigned. Guests with assigned devices were allowed up
to order 18 (x86) or 20 (ARM). XENMEM_decrease_reservation enforced
only the latter, higher limit uniformly on all kinds of guests.

All of these operations involve loops over individual pages (possibly
nested, with only the iteration count of the innermost loop being of
interest here), resulting in iteration counts of up to 1 million on
ARM. Total execution time of these operations obviously depends on
system speed, but have been measured to get into the seconds range.


A malicious guest administrator can cause a denial of service.
Specifically, prevent use of a physical CPU for a significant period.
Other attacks, namely privilege escalation, cannot be ruled out.

If a host watchdog (Xen or dom0) is in use, this can lead to a
watchdog timeout and consequently a reboot of the host.  If another,
innocent, guest, is configured with a watchdog, this issue can lead to
a reboot of such a guest.


All Xen versions supporting ARM are affected.

x86 versions of Xen are unaffected.


The vulnerability can be avoided if the guest kernel is controlled by
the host rather than guest administrator, provided that further steps
are taken to prevent the guest administrator from loading code into
the kernel (e.g. by disabling loadable modules etc) or from using
other mechanisms which allow them to run code at kernel privilege.  On
ARM, controlling the guest's kernel may involve locking down the

Exposure may be limited by not passing through physical devices to
untrusted guests.

(However, where device pass-through is being used to enhance security,
for example, by disaggregating device drivers, users should not change
their configuration: moving the drivers from a separate domain, to
dom0, does NOT mitigate this vulnerability.  Rather, it simply
recategorises the additional exposure, regarding it "as designed" and
therefore "not a bug".  Users and vendors of disaggregated systems
should not change their configuration.)


This issue was discovered by Julien Grall of Citrix.


Applying the appropriate attached patch resolves this issue.

Note that the patches provided with previous versions of this advisory
had two problems:

 - The bounding for ordinary DomU and DomU with pass-through devices(s)
   was swapped.  This would result in non-pass-through domains being able
   to perform operations with larger than intended order.  In the default
   configuration this higher limit is not sufficient to reopen the
   security issue.  However, users of the new memop-max-order option
   may be vulnerable, depending on the limits they specify.

 - On 4.4 and earlier, the relevant patch does not compile on ARM.

The supplementary patch xsa158-fix.patch fixes these problems on all
listed versions.

In summary:

xsa158.patch          } xen-unstable, Xen 4.6.x, Xen 4.5.x
xsa158-fix.patch      }    apply both patches

xsa158-4.4.patch      } Xen 4.4.x, Xen 4.3.x
xsa158-fix.patch      }    apply both patches

$ sha256sum xsa158*
50d7431cbad8faa631e2057ddd795b880f79b96d126a0b83afef3eceacf0026d  xsa158.patch
54b538905e66227bf7f326006a7c322bdf35c76ad8600ff462e61d6e2eab6f04  xsa158-4.4.patch
ab37e320bceeccc81285a6a72b92ed1292b69ddd8da5af94276b4b5cca4a0441  xsa158-fix.patch


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

However deployment of the NO PASS-THROUGH partial MITIGATION is NOT
permitted (except where all the affected systems and VMs are
administered and used only by organisations which are members of the
Xen Project Security Issues Predisclosure List).  Specifically,
deployment on public cloud systems is NOT permitted.

This is because altering the set of devices observable in a guest in
connection with a security issue would be a user-visible change which
could lead to the rediscovery of the vulnerability.

Deployment of the mitigation is permitted only AFTER the embargo ends.

Also: 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

(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:
Version: GnuPG v1.4.12 (GNU/Linux)

-----END PGP SIGNATURE----- Security Team