Re: [RFC PATCH v6 00/26] Control-flow Enforcement: Shadow Stack

From: Andy Lutomirski
Date: Mon Nov 26 2018 - 13:29:57 EST


On Mon, Nov 26, 2018 at 9:44 AM Yu-cheng Yu <yu-cheng.yu@xxxxxxxxx> wrote:
>
> On Thu, 2018-11-22 at 08:53 -0800, Andy Lutomirski wrote:
> > [cc some more libc folks]

>
> >
> > 2. I want to be able to modify the signal context from a signal
> > handler such that, when the signal handler returns, it will return to
> > a frame higher up on the call stack than where the signal started and
> > to a different RIP value. How can I do this? I guess I can modify
> > the shadow stack with WRSS if WR_SHSTK_EN=1, but how do I tell the
> > kernel to kindly skip the frames I want to skip when I do sigreturn()?
> >
> > The reason I'm asking #2 is that I think it's time to resurrect my old
> > vDSO syscall cancellation helper series here:
> >
> > https://lwn.net/Articles/679434/
>
> If tools/testing/selftests/x86/unwind_vdso.c passes, can we say the kernel does
> the right thing? Or do you have other tests that I can run?

I haven't written the relevant test yet. Hopefully soon :)