Bug 1284911 - (CVE-2015-8338, xsa158) CVE-2015-8338 xen: Long running memory operations on ARM cause DoS
CVE-2015-8338 xen: Long running memory operations on ARM cause DoS
Status: NEW
Product: Security Response
Classification: Other
Component: vulnerability (Show other bugs)
unspecified
All Linux
high Severity high
: ---
: ---
Assigned To: Red Hat Product Security
impact=important,public=20151208,repo...
: Security
Depends On: 1289568
Blocks: 1284949
  Show dependency treegraph
 
Reported: 2015-11-24 07:59 EST by Adam Mariš
Modified: 2015-12-19 19:23 EST (History)
9 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed:
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
xen-unstable, Xen 4.6.x, Xen 4.5.x (7.42 KB, patch)
2015-11-24 08:19 EST, Adam Mariš
no flags Details | Diff
Xen 4.4.x, Xen 4.3.x (7.22 KB, patch)
2015-11-24 08:19 EST, Adam Mariš
no flags Details | Diff

  None (edit)
Description Adam Mariš 2015-11-24 07:59:14 EST
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.

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 bootloader.

Exposure may be limited by not passing through physical devices to untrusted guests.
Comment 1 Adam Mariš 2015-11-24 08:19 EST
Created attachment 1098193 [details]
xen-unstable, Xen 4.6.x, Xen 4.5.x
Comment 2 Adam Mariš 2015-11-24 08:19 EST
Created attachment 1098194 [details]
Xen 4.4.x, Xen 4.3.x
Comment 3 Adam Mariš 2015-11-26 04:02:33 EST
Acknowledgments:

Red Hat would like to thank the Xen project for reporting this issue. Upstream acknowledges Julien Grall of Citrix as the original reporter.
Comment 4 Martin Prpič 2015-12-08 07:27:15 EST
External References:

http://xenbits.xen.org/xsa/advisory-158.html
Comment 5 Martin Prpič 2015-12-08 07:42:27 EST
Created xen tracking bugs for this issue:

Affects: fedora-all [bug 1289568]
Comment 6 Martin Prpič 2015-12-10 09:26:07 EST
Just added to the upstream advisory:

UPDATES IN VERSION 4
====================

Mention that the original patches had two problems, supplying an
incremental patch.
Comment 7 Fedora Update System 2015-12-17 02:26:56 EST
xen-4.5.2-5.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.
Comment 8 Fedora Update System 2015-12-19 19:23:08 EST
xen-4.5.2-5.fc22 has been pushed to the Fedora 22 stable repository. If problems still persist, please make note of it in this bug report.

Note You need to log in before you can comment on or make changes to this bug.