|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] x86: constrain MFN range Dom0 may access
commit 53de839fb40936c074213a0c400e3c959e4ec461
Author: Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Thu Jan 21 16:10:42 2016 +0100
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Thu Jan 21 16:10:42 2016 +0100
x86: constrain MFN range Dom0 may access
... to that covered by the physical address width supported by the
processor. This implicitly avoids Dom0 (accidentally or due to some
kind of abuse) passing out of range addresses to a guest, which in
turn eliminates this only possibility for PV guests to create PTEs
with one or more reserved bits set.
Note that this is not a security issue due to XSA-77.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
xen/arch/x86/domain_build.c | 2 +-
xen/arch/x86/mm.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c
index d02dc4b..cb287f0 100644
--- a/xen/arch/x86/domain_build.c
+++ b/xen/arch/x86/domain_build.c
@@ -1533,7 +1533,7 @@ int __init construct_dom0(
/* The hardware domain is initially permitted full I/O capabilities. */
rc |= ioports_permit_access(d, 0, 0xFFFF);
- rc |= iomem_permit_access(d, 0UL, ~0UL);
+ rc |= iomem_permit_access(d, 0UL, (1UL << (paddr_bits - PAGE_SHIFT)) - 1);
rc |= irqs_permit_access(d, 1, nr_irqs_gsi - 1);
/*
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index fcf6577..83f82b8 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -4604,7 +4604,7 @@ struct memory_map_context
static int _handle_iomem_range(unsigned long s, unsigned long e,
struct memory_map_context *ctxt)
{
- if ( s > ctxt->s )
+ if ( s > ctxt->s && !(s >> (paddr_bits - PAGE_SHIFT)) )
{
e820entry_t ent;
XEN_GUEST_HANDLE_PARAM(e820entry_t) buffer_param;
--
generated by git-patchbot for /home/xen/git/xen.git#master
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |