diff options
author | Jan Beulich <JBeulich@suse.com> | 2015-03-11 13:51:17 +0000 |
---|---|---|
committer | David Vrabel <david.vrabel@citrix.com> | 2015-03-11 14:34:40 +0000 |
commit | af6fc858a35b90e89ea7a7ee58e66628c55c776b (patch) | |
tree | 5c794dd0eaf6b82cb5b46a05de14f77b41bb7b8a /drivers/xen/xen-pciback/conf_space.h | |
parent | 85e40b0539b24518c8bdf63e2605c8522377d00f (diff) |
xen-pciback: limit guest control of 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
host.
Note that to alter any of the bits collected together as
PCI_COMMAND_GUEST permissive mode is now required to be enabled
globally or on the specific device.
This is CVE-2015-2150 / XSA-120.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Diffstat (limited to 'drivers/xen/xen-pciback/conf_space.h')
-rw-r--r-- | drivers/xen/xen-pciback/conf_space.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/xen/xen-pciback/conf_space.h b/drivers/xen/xen-pciback/conf_space.h index e56c934ad137..2e1d73d1d5d0 100644 --- a/drivers/xen/xen-pciback/conf_space.h +++ b/drivers/xen/xen-pciback/conf_space.h @@ -64,6 +64,8 @@ struct config_field_entry { void *data; }; +extern bool permissive; + #define OFFSET(cfg_entry) ((cfg_entry)->base_offset+(cfg_entry)->field->offset) /* Add fields to a device - the add_fields macro expects to get a pointer to |