[Oraclevm-errata] OVMSA-2015-0058 Critical: Oracle VM 3.2 xen security update

Errata Announcements for Oracle VM oraclevm-errata at oss.oracle.com
Thu May 14 11:16:09 PDT 2015

Oracle VM Security Advisory OVMSA-2015-0058

The following updated rpms for Oracle VM 3.2 have been uploaded to the 
Unbreakable Linux Network:



Description of changes:

- force the fifo access to be in bounds of the allocated buffer
   This is CVE-2015-3456. [bug 21078935] {CVE-2015-3456}

- xen: limit guest control of PCI command register
   Otherwise the guest can abuse that control to cause e.g. PCIe
   Unsupported Request responses (by disabling memory and/or I/O decoding
   and subsequently causing [CPU side] accesses to the respective address
   ranges), which (depending on system configuration) may be fatal to the
   This is CVE-2015-2756 / XSA-126.
   Signed-off-by: Jan Beulich <jbeulich at suse.com>
   Reviewed-by: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
   Acked-by: Ian Campbell <ian.campbell at citrix.com>
   Acked-by: Chuck Anderson <chuck.anderson at oracle.com>
   Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com> [bug 
20739381] {CVE-2015-2756}

- Limit XEN_DOMCTL_memory_mapping hypercall to only process up to 64 
GFNs (or less)
   Said hypercall for large BARs can take quite a while. As such
   we can require that the hypercall MUST break up the request
   in smaller values.
   Another approach is to add preemption to it - whether we do the
   preemption using hypercall_create_continuation or returning
   EAGAIN to userspace (and have it re-invocate the call) - either
   way the issue we cannot easily solve is that in 'map_mmio_regions'
   if we encounter an error we MUST call 'unmap_mmio_regions' for the
   whole BAR region.
   Since the preemption would re-use input fields such as nr_mfns,
   first_gfn, first_mfn - we would lose the original values -
   and only undo what was done in the current round (i.e. ignoring
   anything that was done prior to earlier preemptions).
   Unless we re-used the return value as 'EAGAIN|nr_mfns_done<<10' but
   that puts a limit (since the return value is a long) on the amount
   of nr_mfns that can provided.
   This patch sidesteps this problem by:
   - Setting an hard limit of nr_mfns having to be 64 or less.
   - Toolstack adjusts correspondingly to the nr_mfn limit.
   - If the there is an error when adding the toolstack will call the
   remove operation to remove the whole region.
   The need to break this hypercall down is for large BARs can take
   more than the guest (initial domain usually) time-slice. This has
   the negative result in that the guest is locked out for a long
   duration and is unable to act on any pending events.
   We also augment the code to return zero if nr_mfns instead
   of trying to the hypercall.
   Suggested-by: Jan Beulich <jbeulich at suse.com>
   Acked-by: Jan Beulich <jbeulich at suse.com>
   Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
   Acked-by: Ian Campbell <ian.campbell at citrix.com>
   This is CVE-2015-2752 / XSA-125.
   Acked-by: Chuck Anderson <chuck.anderson at oracle.com>
   Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com> [bug 
20732402] {CVE-2015-2752}

More information about the Oraclevm-errata mailing list