Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751107AbcCHV6E (ORCPT ); Tue, 8 Mar 2016 16:58:04 -0500 Received: from mail-oi0-f48.google.com ([209.85.218.48]:34754 "EHLO mail-oi0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750802AbcCHV6B (ORCPT ); Tue, 8 Mar 2016 16:58:01 -0500 MIME-Version: 1.0 In-Reply-To: <56DF48EF.2080305@eng.utah.edu> References: <1457470075-4586-1-git-send-email-sbauer@eng.utah.edu> <56DF48EF.2080305@eng.utah.edu> From: Andy Lutomirski Date: Tue, 8 Mar 2016 13:57:40 -0800 Message-ID: Subject: Re: [PATCH v3 1/3] SROP Mitigation: Architecture independent code for signal cookies To: Scotty Bauer Cc: "linux-kernel@vger.kernel.org" , "kernel-hardening@lists.openwall.com" , X86 ML , wmealing@redhat.com, Andi Kleen , Abhiram Balasubramanian 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: 1476 Lines: 33 On Tue, Mar 8, 2016 at 1:49 PM, Scotty Bauer wrote: > > > On 03/08/2016 01:58 PM, Andy Lutomirski wrote: >> On Tue, Mar 8, 2016 at 12:47 PM, Scott Bauer wrote: >>> This patch adds a per-process secret to the task struct which >>> will be used during signal delivery and during a sigreturn. >>> Also, logic is added in signal.c to generate, place, extract, >>> clear and verify the signal cookie. >>> >> >> Potentially silly question: it's been a while since I read the SROP >> paper, but would the technique be effectively mitigated if sigreturn >> were to zero out the whole signal frame before returning to user mode? >> > > I don't know if I fully understand your question, but I'll respond anyway. > > SROP is possible because the kernel doesn't know whether or not the > incoming sigreturn syscall is in response from a legitimate signal that > the kernel had previously delivered and the program handled. So essentially > these patches are an attempt to give the kernel a way to verify whether or > not the the incoming sigreturn is a valid response or a exploit trying to > hijack control of the user program. > I got that part, but I thought that the interesting SROP bit was using sigreturn to return back to a frame where you could just repeat the sigreturn a bunch of times to compute things and do other evil. I'm wondering whether zeroing the whole frame would make SROP much less interesting to an attacker. --Andy