]> xenbits.xensource.com Git - qemu-xen-4.2-testing.git/commit
Avoid trusting client-controlled areas of xenstore.
authorIan Jackson <ian.jackson@eu.citrix.com>
Thu, 2 Oct 2008 13:22:41 +0000 (14:22 +0100)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Thu, 2 Oct 2008 13:22:41 +0000 (14:22 +0100)
commit5d9302d372cf0a2951e3e0c61a5e08496de8aa2b
treefd347cd06bab6f7d2fb5d90e171642796b510bf1
parenta9f797947f8f3329f576598bae7271546beed52b
Avoid trusting client-controlled areas of xenstore.

Various parts of xenstore, specifically /local/GUEST/devices, are
writeable by the guest.  Information from these areas must be used
with care, to avoid the guest tricking qemu-dm into improperly using
its privileged access to dom0 resources.

To this end:
 * Variables and functions referring to client-controlled data have
   had `danger' added to their names.
 * There is a new sanitisation/checking arrangement for getting
   backend paths and information about the configuration of device
   backends, given the frontend information.  This is so that when
   qemu is providing a data path which is parallel to the PV
   frontend/backend arrangements, it only uses the configuration from
   a genuine backend which is really configured to serve qemu's own
   guest.
 * For information which should be read from or written to the `vm'
   tree, we obtain the guest's uuid from the hypervisor (the `label'
   as the hypercall interface calls it) rather than reading it from
   the guest-controlled areas of xenstore.
 * The `phantom vbd' feature is disabled.  It relies on
   guest-controlled xenstore areas indicating device paths on the
   guest.  We do not believe this feature is currently very relevant.
 * We _do_ allow the guest of a stubdom qemu to mess up the
   correspondence between pv backends and emulated devices, in the
   sense that we don't mind if the guest directs qemu to use a `wrong'
   frontend.
hw/pc.c
hw/tpm_tis.c
i386-dm/helper2.c
qemu-xen.h
xen-config-host.h
xenstore.c