Thread (98 messages) 98 messages, 13 authors, 2018-06-26

Re: [PATCH 00/10] Control Flow Enforcement - Part (3)

From: Yu-cheng Yu <hidden>
Date: 2018-06-12 16:24:43
Also in: linux-doc, linux-mm, lkml

On Tue, 2018-06-12 at 09:00 -0700, Andy Lutomirski wrote:
On Tue, Jun 12, 2018 at 8:06 AM Yu-cheng Yu [off-list ref] wrote:
quoted
On Tue, 2018-06-12 at 20:56 +1000, Balbir Singh wrote:
quoted
On 08/06/18 00:37, Yu-cheng Yu wrote:
quoted
This series introduces CET - Shadow stack

At the high level, shadow stack is:

    Allocated from a task's address space with vm_flags VM_SHSTK;
    Its PTEs must be read-only and dirty;
    Fixed sized, but the default size can be changed by sys admin.

For a forked child, the shadow stack is duplicated when the next
shadow stack access takes place.

For a pthread child, a new shadow stack is allocated.

The signal handler uses the same shadow stack as the main program.
Even with sigaltstack()?


Balbir Singh.
Yes.
I think we're going to need some provision to add an alternate signal
stack to handle the case where the shadow stack overflows.
The shadow stack stores only return addresses; its consumption will not
exceed a percentage of (program stack size + sigaltstack size) before
those overflow.  When that happens, there is usually very little we can
do.  So we set a default shadow stack size that supports certain nested
calls and allow sys admin to adjust it.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help