From: Michael Ellerman <mpe@ellerman.id.au> To: linux-kernel@vger.kernel.org Cc: Kees Cook <keescook@chromium.org>, 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>, 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 Subject: Re: [PATCH v3 02/11] mm: Hardened usercopy Date: Thu, 21 Jul 2016 16:52:09 +1000 [thread overview] Message-ID: <57907120.4137420a.5bfa2.2bacSMTPIN_ADDED_BROKEN@mx.google.com> (raw) In-Reply-To: <1468619065-3222-3-git-send-email-keescook@chromium.org> Kees Cook <keescook@chromium.org> writes: > diff --git a/mm/usercopy.c b/mm/usercopy.c > new file mode 100644 > index 000000000000..e4bf4e7ccdf6 > --- /dev/null > +++ b/mm/usercopy.c > @@ -0,0 +1,234 @@ ... > + > +/* > + * Checks if a given pointer and length is contained by the current > + * stack frame (if possible). > + * > + * 0: not at all on the stack > + * 1: fully within a valid stack frame > + * 2: fully on the stack (when can't do frame-checking) > + * -1: error condition (invalid stack position or bad stack frame) > + */ > +static noinline int check_stack_object(const void *obj, unsigned long len) > +{ > + const void * const stack = task_stack_page(current); > + const void * const stackend = stack + THREAD_SIZE; That allows access to the entire stack, including the struct thread_info, is that what we want - it seems dangerous? Or did I miss a check somewhere else? We have end_of_stack() which computes the end of the stack taking thread_info into account (end being the opposite of your end above). cheers -- 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: Michael Ellerman <mpe@ellerman.id.au> 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>, 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: Thu, 21 Jul 2016 16:52:09 +1000 [thread overview] Message-ID: <57907120.4137420a.5bfa2.2bacSMTPIN_ADDED_BROKEN@mx.google.com> (raw) In-Reply-To: <1468619065-3222-3-git-send-email-keescook@chromium.org> Kees Cook <keescook@chromium.org> writes: > diff --git a/mm/usercopy.c b/mm/usercopy.c > new file mode 100644 > index 000000000000..e4bf4e7ccdf6 > --- /dev/null > +++ b/mm/usercopy.c > @@ -0,0 +1,234 @@ ... > + > +/* > + * Checks if a given pointer and length is contained by the current > + * stack frame (if possible). > + * > + * 0: not at all on the stack > + * 1: fully within a valid stack frame > + * 2: fully on the stack (when can't do frame-checking) > + * -1: error condition (invalid stack position or bad stack frame) > + */ > +static noinline int check_stack_object(const void *obj, unsigned long len) > +{ > + const void * const stack = task_stack_page(current); > + const void * const stackend = stack + THREAD_SIZE; That allows access to the entire stack, including the struct thread_info, is that what we want - it seems dangerous? Or did I miss a check somewhere else? We have end_of_stack() which computes the end of the stack taking thread_info into account (end being the opposite of your end above). cheers -- 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>
next prev parent reply other threads:[~2016-07-21 6:52 UTC|newest] Thread overview: 257+ 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 ` [kernel-hardening] " Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` 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 ` [kernel-hardening] " Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` 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 ` [kernel-hardening] " Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-19 1:06 ` Laura Abbott 2016-07-19 1:06 ` [kernel-hardening] " Laura Abbott 2016-07-19 1:06 ` Laura Abbott 2016-07-19 1:06 ` Laura Abbott 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 ` [kernel-hardening] " Kees Cook 2016-07-19 18:48 ` Kees Cook 2016-07-19 18:48 ` Kees Cook 2016-07-19 18:48 ` Kees Cook 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 ` [kernel-hardening] " Laura Abbott 2016-07-19 22:00 ` Laura Abbott 2016-07-19 22:00 ` Laura Abbott 2016-07-19 22:00 ` Laura Abbott 2016-07-19 22:00 ` Laura Abbott 2016-07-19 22:40 ` Kees Cook 2016-07-19 22:40 ` [kernel-hardening] " Kees Cook 2016-07-19 22:40 ` Kees Cook 2016-07-19 22:40 ` Kees Cook 2016-07-19 22:40 ` Kees Cook 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 ` [kernel-hardening] " Balbir Singh 2016-07-20 10:24 ` Balbir Singh 2016-07-20 10:24 ` Balbir Singh 2016-07-20 10:24 ` Balbir Singh 2016-07-20 10:24 ` Balbir Singh 2016-07-20 10:24 ` Balbir Singh 2016-07-20 10:24 ` Balbir Singh 2016-07-20 15:36 ` Laura Abbott 2016-07-20 15:36 ` [kernel-hardening] " Laura Abbott 2016-07-20 15:36 ` Laura Abbott 2016-07-20 15:36 ` Laura Abbott 2016-07-20 15:36 ` Laura Abbott 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 ` [kernel-hardening] " Laura Abbott 2016-07-19 1:52 ` Laura Abbott 2016-07-19 1:52 ` 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 ` [kernel-hardening] " Kees Cook 2016-07-19 19:12 ` Kees Cook 2016-07-19 19:12 ` Kees Cook 2016-07-19 19:12 ` Kees Cook 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 ` [kernel-hardening] " Kees Cook 2016-07-19 22:55 ` Kees Cook 2016-07-19 22:55 ` Kees Cook 2016-07-19 22:55 ` Kees Cook 2016-07-19 22:55 ` Kees Cook 2016-07-19 22:55 ` Kees Cook 2016-07-19 9:21 ` Christian Borntraeger 2016-07-19 9:21 ` [kernel-hardening] " Christian Borntraeger 2016-07-19 9:21 ` Christian Borntraeger 2016-07-19 9:21 ` Christian Borntraeger 2016-07-19 9:21 ` Christian Borntraeger 2016-07-19 9:21 ` Christian Borntraeger 2016-07-19 19:31 ` Kees Cook 2016-07-19 19:31 ` [kernel-hardening] " Kees Cook 2016-07-19 19:31 ` Kees Cook 2016-07-19 19:31 ` Kees Cook 2016-07-19 19:31 ` Kees Cook 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 ` [kernel-hardening] " Christian Borntraeger 2016-07-19 20:14 ` Christian Borntraeger 2016-07-19 20:14 ` Christian Borntraeger 2016-07-19 20:14 ` Christian Borntraeger 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 ` [kernel-hardening] " Kees Cook 2016-07-19 20:34 ` Kees Cook 2016-07-19 20:34 ` Kees Cook 2016-07-19 20:34 ` Kees Cook 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 ` [kernel-hardening] " Christian Borntraeger 2016-07-19 20:44 ` Christian Borntraeger 2016-07-19 20:44 ` Christian Borntraeger 2016-07-19 20:44 ` Christian Borntraeger 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 ` [kernel-hardening] " Michael Ellerman 2016-07-21 6:52 ` Michael Ellerman 2016-07-21 6:52 ` Michael Ellerman 2016-07-21 6:52 ` Michael Ellerman [this message] 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 ` [kernel-hardening] " Kees Cook 2016-07-21 18:34 ` Kees Cook 2016-07-21 18:34 ` Kees Cook 2016-07-21 18:34 ` Kees Cook 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 ` [kernel-hardening] " Josh Poimboeuf 2016-07-22 17:45 ` Josh Poimboeuf 2016-07-22 17:45 ` Josh Poimboeuf 2016-07-22 17:45 ` Josh Poimboeuf 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 ` [kernel-hardening] " David Laight 2016-07-25 9:27 ` David Laight 2016-07-25 9:27 ` David Laight 2016-07-25 9:27 ` David Laight 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 ` [kernel-hardening] " Michael Ellerman 2016-07-26 2:09 ` Michael Ellerman 2016-07-26 2:09 ` Michael Ellerman 2016-07-26 2:09 ` Michael Ellerman 2016-07-26 2:09 ` Michael Ellerman 2016-07-26 2:09 ` Michael Ellerman 2016-07-26 2:09 ` Michael Ellerman 2016-07-26 2:03 ` Michael Ellerman 2016-07-26 2:03 ` [kernel-hardening] " Michael Ellerman 2016-07-26 2:03 ` Michael Ellerman 2016-07-26 2:03 ` Michael Ellerman 2016-07-26 4:46 ` Kees Cook 2016-07-26 4:46 ` [kernel-hardening] " Kees Cook 2016-07-26 4:46 ` Kees Cook 2016-07-26 4:46 ` Kees Cook 2016-07-26 4:46 ` Kees Cook 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 ` [kernel-hardening] " Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` 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 ` [kernel-hardening] " Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` 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 ` [kernel-hardening] " Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` 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 ` [kernel-hardening] " Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` 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 ` [kernel-hardening] " Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` 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 ` [kernel-hardening] " Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` 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 ` [kernel-hardening] " Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` 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 ` [kernel-hardening] " Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` 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 ` [kernel-hardening] " Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` Kees Cook 2016-07-15 21:44 ` 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 ` [kernel-hardening] " Balbir Singh 2016-07-18 8:26 ` Balbir Singh 2016-07-18 8:26 ` Balbir Singh 2016-07-18 8:26 ` Balbir Singh 2016-07-18 8:26 ` Balbir Singh 2016-07-18 8:26 ` Balbir Singh 2016-07-20 9:52 ` David Laight 2016-07-20 9:52 ` [kernel-hardening] " David Laight 2016-07-20 9:52 ` David Laight 2016-07-20 9:52 ` David Laight 2016-07-20 9:52 ` David Laight 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 ` [kernel-hardening] " Kees Cook 2016-07-20 15:31 ` Kees Cook 2016-07-20 15:31 ` Kees Cook 2016-07-20 15:31 ` Kees Cook 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 ` [kernel-hardening] " David Laight 2016-07-20 16:02 ` David Laight 2016-07-20 16:02 ` David Laight 2016-07-20 16:02 ` David Laight 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 ` [kernel-hardening] " Rik van Riel 2016-07-20 16:22 ` Rik van Riel 2016-07-20 16:22 ` Rik van Riel 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 ` [kernel-hardening] " Kees Cook 2016-07-20 17:44 ` Kees Cook 2016-07-20 17:44 ` Kees Cook 2016-07-20 17:44 ` Kees Cook 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=57907120.4137420a.5bfa2.2bacSMTPIN_ADDED_BROKEN@mx.google.com \ --to=mpe@ellerman.id.au \ --cc=akpm@linux-foundation.org \ --cc=ard.biesheuvel@linaro.org \ --cc=benh@kernel.crashing.org \ --cc=bp@suse.de \ --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=iamjoonsoo.kim@lge.com \ --cc=jpoimboe@redhat.com \ --cc=keescook@chromium.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux@armlinux.org.uk \ --cc=luto@kernel.org \ --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 an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.