qemu-irix/hw
Gerd Hoffmann 7fe5418d9f vbe: rework sanity checks
Plug a bunch of holes in the bochs dispi interface parameter checking.
Add a function doing verification on all registers.  Call that
unconditionally on every register write.  That way we should catch
everything, even changing one register affecting the valid range of
another register.

Some of the holes have been added by commit
e9c6149f6a.  Before that commit the
maximum possible framebuffer (VBE_DISPI_MAX_XRES * VBE_DISPI_MAX_YRES *
32 bpp) has been smaller than the qemu vga memory (8MB) and the checking
for VBE_DISPI_MAX_XRES + VBE_DISPI_MAX_YRES + VBE_DISPI_MAX_BPP was ok.

Some of the holes have been there forever, such as
VBE_DISPI_INDEX_X_OFFSET and VBE_DISPI_INDEX_Y_OFFSET register writes
lacking any verification.

Security impact:

(1) Guest can make the ui (gtk/vnc/...) use memory rages outside the vga
frame buffer as source  ->  host memory leak.  Memory isn't leaked to
the guest but to the vnc client though.

(2) Qemu will segfault in case the memory range happens to include
unmapped areas  ->  Guest can DoS itself.

The guest can not modify host memory, so I don't think this can be used
by the guest to escape.

CVE-2014-3615

Cc: qemu-stable@nongnu.org
Cc: secalert@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
(cherry picked from commit c1b886c45d)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2014-09-10 09:30:58 -05:00
..
9pfs
acpi pcihp: fix possible array out of bounds 2014-09-08 11:23:05 -05:00
alpha
arm arm/virt: Use PSCI v0.2 function IDs in the DT when KVM uses PSCI v0.2 2014-09-08 11:23:05 -05:00
audio
block virtio-blk: fix reference a pointer which might be freed 2014-09-08 11:23:04 -05:00
bt
char cadence_uart: check for serial backend before using it. 2014-07-17 16:36:17 +01:00
core machine: Replace underscores in machine's property names 2014-07-21 18:58:36 +02:00
cpu
cris
display vbe: rework sanity checks 2014-09-10 09:30:58 -05:00
dma
gpio
i2c
i386 acpi-build: Set FORCE_APIC_CLUSTER_MODEL bit for FADT flags 2014-09-10 09:30:58 -05:00
ide ide: only constrain read/write requests to drive size, not other types 2014-08-26 16:58:56 -05:00
input input: fix jumpy mouse cursor with USB mouse emulation 2014-07-01 13:26:37 +02:00
intc
ipack
isa
lm32
m68k
mem pc-dimm: fix up error message 2014-09-08 11:23:04 -05:00
microblaze
mips mips_malta: Catch kernels linked at wrong address 2014-07-09 18:17:08 +02:00
misc vfio: Fix MSI-X vector expansion 2014-08-26 16:48:12 -05:00
moxie
net virtio-net: purge outstanding packets when starting vhost 2014-09-10 09:30:58 -05:00
nvram
openrisc
pci pci: avoid losing config updates to MSI/MSIX cap regs 2014-09-10 09:30:57 -05:00
pci-bridge
pci-host prep: Remove PCI memory hack related to OpenHack'Ware 2014-07-07 16:46:35 +02:00
pcmcia
ppc spapr_pci: map the MSI window in each PHB 2014-09-10 09:30:28 -05:00
s390x s390x/css: reflect cpa in scsw 2014-07-08 15:08:03 +02:00
scsi vhost-scsi: init backend features earlier 2014-09-10 09:30:57 -05:00
sd
sh4
sparc
sparc64
ssi
timer mc146818rtc: register the clock reset notifier on the right clock 2014-07-10 17:06:33 +02:00
tpm
unicore32
usb usb: mtp: tag root property as experimental 2014-07-23 08:55:40 +02:00
virtio virtio: don't call device on !vm_running 2014-09-10 09:30:58 -05:00
watchdog watchdog: fix deadlock with -watchdog-action pause 2014-07-09 18:17:08 +02:00
xen xen_backend: introduce xenstore_read_uint64 and xenstore_read_fe_uint64 2014-07-07 10:37:40 +00:00
xenpv
xtensa
Makefile.objs