[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-4.1-testing] x86: check remote MMIO remap permissions
# HG changeset patch # User Daniel De Graaf <dgdegra@xxxxxxxxxxxxx> # Date 1349340283 -7200 # Node ID a15596a619ed738c163c08d3ec275c8880890c52 # Parent addf106cc90fb8a82d87964c6e4ffd29863c2bc1 x86: check remote MMIO remap permissions When a domain is mapping pages from a different pg_owner domain, the iomem_access checks are currently only applied to the pg_owner domain, potentially allowing a domain with a more restrictive iomem_access policy to have the pages mapped into its page tables. To catch this, also check the owner of the page tables. The current domain does not need to be checked because the ability to manipulate a domain's page tables implies full access to the target domain, so checking that domain's permission is sufficient. Signed-off-by: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx> Acked-by: Jan Beulich <jbeulich@xxxxxxxx> xen-unstable changeset: 25952:8278d7d8fa48 xen-unstable date: Wed Sep 26 09:56:07 UTC 2012 --- diff -r addf106cc90f -r a15596a619ed xen/arch/x86/mm.c --- a/xen/arch/x86/mm.c Thu Oct 04 10:38:15 2012 +0200 +++ b/xen/arch/x86/mm.c Thu Oct 04 10:44:43 2012 +0200 @@ -827,6 +827,16 @@ get_page_from_l1e( return 0; } + if ( pg_owner != l1e_owner && + !iomem_access_permitted(l1e_owner, mfn, mfn) ) + { + if ( mfn != (PADDR_MASK >> PAGE_SHIFT) ) /* INVALID_MFN? */ + MEM_LOG("Dom%u attempted to map I/O space %08lx in dom%u to dom%u", + curr->domain->domain_id, mfn, pg_owner->domain_id, + l1e_owner->domain_id); + return 0; + } + if ( !(l1f & _PAGE_RW) || IS_PRIV(pg_owner) || !rangeset_contains_singleton(mmio_ro_ranges, mfn) ) return 1; _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |