From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754669Ab3CKVBl (ORCPT ); Mon, 11 Mar 2013 17:01:41 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:46794 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754285Ab3CKVBf (ORCPT ); Mon, 11 Mar 2013 17:01:35 -0400 Date: Mon, 11 Mar 2013 14:01:30 -0700 From: Andrew Morton To: Kees Cook Cc: Greg KH , Ben Hutchings , luis.henriques@canonical.com, LKML Subject: Re: + signal-always-clear-sa_restorer-on-execve.patch added to -mm tree Message-Id: <20130311140130.7effd02d12236dff081646d5@linux-foundation.org> In-Reply-To: References: <20130311202255.942745A4121@corp2gmr1-2.hot.corp.google.com> X-Mailer: Sylpheed 3.2.0beta5 (GTK+ 2.24.10; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 11 Mar 2013 13:37:53 -0700 Kees Cook wrote: > ... > (pop toasting undone) > > Subject: signal: always clear sa_restorer on execve > > > > When the new signal handlers are set up, the location of sa_restorer is > > not cleared, leaking a parent process's address space location to > > children. This allows for a potential bypass of the parent's ASLR by > > examining the sa_restorer value returned when calling sigaction(). > > > > Based on what should be considered "secret" about addresses, it only > > matters across the exec not the fork (since the VMAs haven't changed until > > the exec). But since exec sets SIG_DFL and keeps sa_restorer, this is > > where it should be fixed. > > A note for backporters: you'll likely want to change > __ARCH_HAS_SA_RESTORER to SA_RESTORER, since the former was recently > introduced. If not, this will apply but not actually do any good. I added this to the changelog, but I fear people won't read it! Is there any clever way in which we can have one patch which will work OK in both old and new kernels? I can't think of one...