Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932762AbdFLPuI (ORCPT ); Mon, 12 Jun 2017 11:50:08 -0400 Received: from mail-it0-f42.google.com ([209.85.214.42]:38593 "EHLO mail-it0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932638AbdFLPmF (ORCPT ); Mon, 12 Jun 2017 11:42:05 -0400 MIME-Version: 1.0 In-Reply-To: <20170612152559.204034809@linuxfoundation.org> References: <20170612152556.133240249@linuxfoundation.org> <20170612152559.204034809@linuxfoundation.org> From: Jann Horn Date: Mon, 12 Jun 2017 17:41:34 +0200 Message-ID: Subject: Re: [kernel-hardening] [PATCH 4.4 47/90] stackprotector: Increase the per-task stack canarys random range from 32 bits to 64 bits on 64-bit platforms To: Greg Kroah-Hartman Cc: kernel list , stable@vger.kernel.org, Daniel Micay , Arjan van de Ven , Rik van Riel , Kees Cook , Linus Torvalds , Peter Zijlstra , Thomas Gleixner , Kernel Hardening , Ingo Molnar Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1630 Lines: 48 AFAICS get_random_long() doesn't exist in 4.4 (except in arch/x86/boot/compressed/aslr.c)? IIRC the same problem already occured with another kernel version? On Mon, Jun 12, 2017 at 5:25 PM, Greg Kroah-Hartman wrote: > 4.4-stable review patch. If anyone has any objections, please let me know. > > ------------------ > > From: Daniel Micay > > commit 5ea30e4e58040cfd6434c2f33dc3ea76e2c15b05 upstream. > > The stack canary is an 'unsigned long' and should be fully initialized to > random data rather than only 32 bits of random data. > > Signed-off-by: Daniel Micay > Acked-by: Arjan van de Ven > Acked-by: Rik van Riel > Acked-by: Kees Cook > Cc: Arjan van Ven > Cc: Linus Torvalds > Cc: Peter Zijlstra > Cc: Thomas Gleixner > Cc: kernel-hardening@lists.openwall.com > Cc: stable@vger.kernel.org > Link: http://lkml.kernel.org/r/20170504133209.3053-1-danielmicay@gmail.com > Signed-off-by: Ingo Molnar > Signed-off-by: Greg Kroah-Hartman > > --- > kernel/fork.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > --- a/kernel/fork.c > +++ b/kernel/fork.c > @@ -368,7 +368,7 @@ static struct task_struct *dup_task_stru > set_task_stack_end_magic(tsk); > > #ifdef CONFIG_CC_STACKPROTECTOR > - tsk->stack_canary = get_random_int(); > + tsk->stack_canary = get_random_long(); > #endif > > /* > >