[$] Shadow stacks for user space

The call stack is a favorite target for attackers attempting to compromise
a running process; if an attacker finds a way to overwrite a return address
on the stack, they can redirect control to code of their choosing, leading
to a situation best described as “game over”. As a result, a great deal of
effort has gone into protecting the stack. One technique that offers
promise is a shadow stack; support for shadow stacks is thus duly showing up in
various processors. Support for protecting user-space applications with
shadow stacks is taking a bit longer; it is currently under discussion
within the kernel community, but adding this feature is trickier than one
might think. Among other things, these patches have been around for long
enough that they have developed some backward-compatibility problems of
their own.

Source: LWN.net – [$] Shadow stacks for user space