OracleVM 3.3 : xen (OVMSA-2015-0095)

This script is Copyright (C) 2015-2017 Tenable Network Security, Inc.


Synopsis :

The remote OracleVM host is missing one or more security updates.

Description :

The remote OracleVM system is missing necessary patches to address
critical security updates :

- ide: Clear DRQ after handling all expected accesses This
is additional hardening against an end_transfer_func
that fails to clear the DRQ status bit. The bit must be
unset as soon as the PIO transfer has completed, so it's
better to do this in a central place instead of
duplicating the code in all commands (and forgetting it
in some).

This is XSA-138 CVE-2015-5154 (CVE-2015-5154)

- ide/atapi: Fix START STOP UNIT command completion The
command must be completed on all code paths. START STOP
UNIT with pwrcnd set should succeed without doing
anything.

This is XSA-138 CVE-2015-5154 (CVE-2015-5154)

- ide: Check array bounds before writing to io_buffer
(CVE-2015-5154) If the end_transfer_func of a command is
called because enough data has been read or written for
the current PIO transfer, and it fails to correctly call
the command completion functions, the DRQ bit in the
status register and s->end_transfer_func may remain set.
This allows the guest to access further bytes in
s->io_buffer beyond s->data_end, and eventually
overflowing the io_buffer. One case where this currently
happens is emulation of the ATAPI command START STOP
UNIT. This patch fixes the problem by adding explicit
array bounds checks before accessing the buffer instead
of relying on end_transfer_func to function correctly.
Cc :

This is XSA-138 (CVE-2015-5154)

- ide: Clear DRQ after handling all expected accesses This
is additional hardening against an end_transfer_func
that fails to clear the DRQ status bit. The bit must be
unset as soon as the PIO transfer has completed, so it's
better to do this in a central place instead of
duplicating the code in all commands (and forgetting it
in some).

This is XSA-138 (CVE-2015-5154)

- ide: Check array bounds before writing to io_buffer If
the end_transfer_func of a command is called because
enough data has been read or written for the current PIO
transfer, and it fails to correctly call the command
completion functions, the DRQ bit in the status register
and s->end_transfer_func may remain set. This allows the
guest to access further bytes in s->io_buffer beyond
s->data_end, and eventually overflowing the io_buffer.
One case where this currently happens is emulation of
the ATAPI command START STOP UNIT. This patch fixes the
problem by adding explicit array bounds checks before
accessing the buffer instead of relying on
end_transfer_func to function correctly. Cc :

This is XSA-138 (CVE-2015-5154)

- tools: libxl: Explicitly disable graphics backends on
qemu cmdline By default qemu will try to create some
sort of backend for the emulated VGA device, either SDL
or VNC. However when the user specifies sdl=0 and vnc=0
in their configuration libxl was not explicitly
disabling either backend, which could lead to one
unexpectedly running. If either sdl=1 or vnc=1 is
configured then both before and after this change only
the backends which are explicitly enabled are
configured, i.e. this issue only occurs when all
backends are supposed to have been disabled. This
affects qemu-xen and qemu-xen-traditional differently.
If qemu-xen was compiled with SDL support then this
would result in an SDL window being opened if $DISPLAY
is valid, or a failure to start the guest if not.
Passing '-display none' to qemu before any further

-sdl options disables this default behaviour and ensures
that SDL is only started if the libxl configuration
demands it. If qemu-xen was compiled without SDL support
then qemu would instead start a VNC server listening on
::1 (IPv6 localhost) or 127.0.0.1 (IPv4 localhost) with
IPv6 preferred if available. Explicitly pass '-vnc none'
when vnc is not enabled in the libxl configuration to
remove this possibility. qemu-xen-traditional would
never start a vnc backend unless asked. However by
default it will start an SDL backend, the way to disable
this is to pass a -vnc option. In other words passing
'-vnc none' will disable both vnc and sdl by default.
sdl can then be reenabled if configured by subsequent
use of the -sdl option. Tested with both qemu-xen and
qemu-xen-traditional built with SDL support and: xl cr #
defaults xl cr sdl=0 vnc=0 xl cr sdl=1 vnc=0 xl cr sdl=0
vnc=1 xl cr sdl=0 vnc=0 vga='none' xl cr sdl=0 vnc=0
nographic=1 with both valid and invalid $DISPLAY. This
is XSA-119 / CVE-2015-2152. (CVE-2015-2152)

See also :

https://oss.oracle.com/pipermail/oraclevm-errata/2015-July/000343.html

Solution :

Update the affected xen / xen-tools packages.

Risk factor :

High / CVSS Base Score : 7.2
(CVSS2#AV:L/AC:L/Au:N/C:C/I:C/A:C)
CVSS Temporal Score : 5.3
(CVSS2#E:U/RL:OF/RC:C)
Public Exploit Available : false

Family: OracleVM Local Security Checks

Nessus Plugin ID: 85037 ()

Bugtraq ID: 73068

CVE ID: CVE-2015-2152
CVE-2015-5154

Ready to Amp Up Your Nessus Experience?

Get Nessus Professional to scan unlimited IPs, run compliance checks & more

Buy Nessus Professional Now