On 03/09/2016 01:32 AM, Ingo Molnar wrote: > > * Scott Bauer <sba...@eng.utah.edu> 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. https://lkml.org/lkml/2016/2/6/166 Thanks