Re: [PATCH v3 1/3] SROP Mitigation: Architecture independent code for signal cookies

From: Scotty Bauer
Date: Wed Mar 09 2016 - 17:07:32 EST

On 03/09/2016 01:32 AM, Ingo Molnar wrote:
> * Scott Bauer <sbauer@xxxxxxxxxxxx> 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.
>> /*
>> + * Canary value for signal frames placed on user stack.
>> + * This helps mitigate "Signal Return oriented program"
>> + * exploits in userland.
>> + */
>> + unsigned long sig_cookie;
> Could you please add a high level description in Documentation
> that explains the attack and the way how this mitigation code
> prevents that kind of attack?
> Also, the first changelogs should contain more high level
> description as well. For example, what does the 'verification'
> of the signal cookie mean, and how does it prevent an SROP
> attempt?
> All of these patches seem to assume that people reading this code
> know what SROP is and how we defend against it - that is not so.
> Thanks,
> Ingo

I'm going to submit v4 to fix some nits where I'll include the explanation
and a change log, I apologize for not doing that here. In the meantime if
you don't mind visiting a link I included a brief explanation on previous
versions of the patch set.