From: Christian Borntraeger <borntraeger@de.ibm.com> To: Kees Cook <keescook@chromium.org>, linux-kernel@vger.kernel.org Cc: Balbir Singh <bsingharora@gmail.com>, Daniel Micay <danielmicay@gmail.com>, Josh Poimboeuf <jpoimboe@redhat.com>, Rik van Riel <riel@redhat.com>, Casey Schaufler <casey@schaufler-ca.com>, PaX Team <pageexec@freemail.hu>, Brad Spengler <spender@grsecurity.net>, Russell King <linux@armlinux.org.uk>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will.deacon@arm.com>, Ard Biesheuvel <ard.biesheuvel@linaro.org>, Benjamin Herrenschmidt <benh@kernel.crashing.org>, Michael Ellerman <mpe@ellerman.id.au>, Tony Luck <tony.luck@intel.com>, Fenghua Yu <fenghua.yu@intel.com>, "David S. Miller" <davem@davemloft.net>, x86@kernel.org, Christoph Lameter <cl@linux.com>, Pekka Enberg <penberg@kernel.org>, David Rientjes <rientjes@google.com>, Joonsoo Kim <iamjoonsoo> Subject: Re: [PATCH v3 02/11] mm: Hardened usercopy Date: Tue, 19 Jul 2016 11:21:13 +0200 [thread overview] Message-ID: <578DF109.5030704@de.ibm.com> (raw) In-Reply-To: <1468619065-3222-3-git-send-email-keescook@chromium.org> On 07/15/2016 11:44 PM, Kees Cook wrote: > +config HAVE_ARCH_LINEAR_KERNEL_MAPPING > + bool > + help > + An architecture should select this if it has a secondary linear > + mapping of the kernel text. This is used to verify that kernel > + text exposures are not visible under CONFIG_HARDENED_USERCOPY. I have trouble parsing this. (What does secondary linear mapping mean?) So let me give an example below > + [...] > +/* Is this address range in the kernel text area? */ > +static inline const char *check_kernel_text_object(const void *ptr, > + unsigned long n) > +{ > + unsigned long textlow = (unsigned long)_stext; > + unsigned long texthigh = (unsigned long)_etext; > + > + if (overlaps(ptr, n, textlow, texthigh)) > + return "<kernel text>"; > + > +#ifdef HAVE_ARCH_LINEAR_KERNEL_MAPPING > + /* Check against linear mapping as well. */ > + if (overlaps(ptr, n, (unsigned long)__va(__pa(textlow)), > + (unsigned long)__va(__pa(texthigh)))) > + return "<linear kernel text>"; > +#endif > + > + return NULL; > +} s390 has an address space for user (primary address space from 0..4TB/8PB) and a separate address space (home space from 0..4TB/8PB) for the kernel. In this home space the kernel mapping is virtual containing the physical memory as well as vmalloc memory (creating aliases into the physical one). The kernel text is mapped from _stext to _etext in this mapping. So I assume this would qualify for HAVE_ARCH_LINEAR_KERNEL_MAPPING ? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Christian Borntraeger <borntraeger@de.ibm.com> To: Kees Cook <keescook@chromium.org>, linux-kernel@vger.kernel.org Cc: Balbir Singh <bsingharora@gmail.com>, Daniel Micay <danielmicay@gmail.com>, Josh Poimboeuf <jpoimboe@redhat.com>, Rik van Riel <riel@redhat.com>, Casey Schaufler <casey@schaufler-ca.com>, PaX Team <pageexec@freemail.hu>, Brad Spengler <spender@grsecurity.net>, Russell King <linux@armlinux.org.uk>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will.deacon@arm.com>, Ard Biesheuvel <ard.biesheuvel@linaro.org>, Benjamin Herrenschmidt <benh@kernel.crashing.org>, Michael Ellerman <mpe@ellerman.id.au>, Tony Luck <tony.luck@intel.com>, Fenghua Yu <fenghua.yu@intel.com>, "David S. Miller" <davem@davemloft.net>, x86@kernel.org, Christoph Lameter <cl@linux.com>, Pekka Enberg <penberg@kernel.org>, David Rientjes <rientjes@google.com>, Joonsoo Kim <iamjoonsoo.kim@lge.com>, Andrew Morton <akpm@linux-foundation.org>, Andy Lutomirski <luto@kernel.org>, Borislav Petkov <bp@suse.de>, Mathias Krause <minipli@googlemail.com>, Jan Kara <jack@suse.cz>, Vitaly Wool <vitalywool@gmail.com>, Andrea Arcangeli <aarcange@redhat.com>, Dmitry Vyukov <dvyukov@google.com>, Laura Abbott <labbott@fedoraproject.org>, linux-arm-kernel@lists.infradead.org, linux-ia64@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org, linux-arch@vger.kernel.org, linux-mm@kvack.org, kernel-hardening@lists.openwall.com Subject: Re: [PATCH v3 02/11] mm: Hardened usercopy Date: Tue, 19 Jul 2016 11:21:13 +0200 [thread overview] Message-ID: <578DF109.5030704@de.ibm.com> (raw) Message-ID: <20160719092113.oljc-n2IXuB6wWcB-osLwbP2BWv4e--xQrkWcO7mflw@z> (raw) In-Reply-To: <1468619065-3222-3-git-send-email-keescook@chromium.org> On 07/15/2016 11:44 PM, Kees Cook wrote: > +config HAVE_ARCH_LINEAR_KERNEL_MAPPING > + bool > + help > + An architecture should select this if it has a secondary linear > + mapping of the kernel text. This is used to verify that kernel > + text exposures are not visible under CONFIG_HARDENED_USERCOPY. I have trouble parsing this. (What does secondary linear mapping mean?) So let me give an example below > + [...] > +/* Is this address range in the kernel text area? */ > +static inline const char *check_kernel_text_object(const void *ptr, > + unsigned long n) > +{ > + unsigned long textlow = (unsigned long)_stext; > + unsigned long texthigh = (unsigned long)_etext; > + > + if (overlaps(ptr, n, textlow, texthigh)) > + return "<kernel text>"; > + > +#ifdef HAVE_ARCH_LINEAR_KERNEL_MAPPING > + /* Check against linear mapping as well. */ > + if (overlaps(ptr, n, (unsigned long)__va(__pa(textlow)), > + (unsigned long)__va(__pa(texthigh)))) > + return "<linear kernel text>"; > +#endif > + > + return NULL; > +} s390 has an address space for user (primary address space from 0..4TB/8PB) and a separate address space (home space from 0..4TB/8PB) for the kernel. In this home space the kernel mapping is virtual containing the physical memory as well as vmalloc memory (creating aliases into the physical one). The kernel text is mapped from _stext to _etext in this mapping. So I assume this would qualify for HAVE_ARCH_LINEAR_KERNEL_MAPPING ?
next prev parent reply other threads:[~2016-07-19 9:21 UTC|newest] Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-07-15 21:44 [PATCH v3 00/11] mm: Hardened usercopy Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` [PATCH v3 01/11] mm: Implement stack frame object validation Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` [PATCH v3 02/11] mm: Hardened usercopy Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-19 1:06 ` Laura Abbott 2016-07-19 1:06 ` Laura Abbott 2016-07-19 18:48 ` Kees Cook 2016-07-19 18:48 ` Kees Cook 2016-07-19 22:00 ` [PATCH] mm: Add is_migrate_cma_page Laura Abbott 2016-07-19 22:00 ` Laura Abbott 2016-07-19 22:40 ` Kees Cook 2016-07-19 22:40 ` Kees Cook 2016-07-20 10:24 ` [PATCH v3 02/11] mm: Hardened usercopy Balbir Singh 2016-07-20 10:24 ` Balbir Singh 2016-07-20 15:36 ` Laura Abbott 2016-07-20 15:36 ` Laura Abbott 2016-07-19 1:52 ` Laura Abbott 2016-07-19 1:52 ` Laura Abbott 2016-07-19 19:12 ` Kees Cook 2016-07-19 19:12 ` Kees Cook 2016-07-19 22:55 ` Kees Cook 2016-07-19 22:55 ` Kees Cook 2016-07-19 9:21 ` Christian Borntraeger [this message] 2016-07-19 9:21 ` Christian Borntraeger 2016-07-19 19:31 ` Kees Cook 2016-07-19 19:31 ` Kees Cook 2016-07-19 20:14 ` Christian Borntraeger 2016-07-19 20:14 ` Christian Borntraeger 2016-07-19 20:34 ` Kees Cook 2016-07-19 20:34 ` Kees Cook 2016-07-19 20:44 ` Christian Borntraeger 2016-07-19 20:44 ` Christian Borntraeger 2016-07-21 6:52 ` Michael Ellerman 2016-07-21 6:52 ` Michael Ellerman 2016-07-21 6:52 ` Michael Ellerman 2016-07-21 6:52 ` Michael Ellerman 2016-07-21 6:52 ` Michael Ellerman [not found] ` <5790711f.2350420a.b4287.2cc0SMTPIN_ADDED_BROKEN@mx.google.com> 2016-07-21 18:34 ` Kees Cook 2016-07-21 18:34 ` Kees Cook 2016-07-22 17:45 ` Josh Poimboeuf 2016-07-22 17:45 ` Josh Poimboeuf 2016-07-25 9:27 ` David Laight 2016-07-25 9:27 ` David Laight 2016-07-26 2:09 ` Michael Ellerman 2016-07-26 2:09 ` Michael Ellerman 2016-07-26 2:03 ` Michael Ellerman 2016-07-26 4:46 ` Kees Cook 2016-07-26 4:46 ` Kees Cook 2016-07-15 21:44 ` [PATCH v3 03/11] x86/uaccess: Enable hardened usercopy Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` [PATCH v3 04/11] ARM: uaccess: " Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` [PATCH v3 05/11] arm64/uaccess: " Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` [PATCH v3 06/11] ia64/uaccess: " Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` [PATCH v3 07/11] powerpc/uaccess: " Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` [PATCH v3 08/11] sparc/uaccess: " Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` [PATCH v3 09/11] s390/uaccess: " Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` [PATCH v3 10/11] mm: SLAB hardened usercopy support Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` [PATCH v3 11/11] mm: SLUB " Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-18 8:26 ` [PATCH v3 00/11] mm: Hardened usercopy Balbir Singh 2016-07-18 8:26 ` Balbir Singh 2016-07-20 9:52 ` David Laight 2016-07-20 9:52 ` David Laight 2016-07-20 15:31 ` Kees Cook 2016-07-20 15:31 ` Kees Cook 2016-07-20 16:02 ` David Laight 2016-07-20 16:02 ` David Laight 2016-07-20 16:22 ` Rik van Riel 2016-07-20 16:22 ` Rik van Riel 2016-07-20 17:44 ` Kees Cook 2016-07-20 17:44 ` Kees Cook
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=578DF109.5030704@de.ibm.com \ --to=borntraeger@de.ibm.com \ --cc=ard.biesheuvel@linaro.org \ --cc=benh@kernel.crashing.org \ --cc=bsingharora@gmail.com \ --cc=casey@schaufler-ca.com \ --cc=catalin.marinas@arm.com \ --cc=cl@linux.com \ --cc=danielmicay@gmail.com \ --cc=davem@davemloft.net \ --cc=fenghua.yu@intel.com \ --cc=jpoimboe@redhat.com \ --cc=keescook@chromium.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux@armlinux.org.uk \ --cc=mpe@ellerman.id.au \ --cc=pageexec@freemail.hu \ --cc=penberg@kernel.org \ --cc=riel@redhat.com \ --cc=rientjes@google.com \ --cc=spender@grsecurity.net \ --cc=tony.luck@intel.com \ --cc=will.deacon@arm.com \ --cc=x86@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).