seccomp: add map_shadow_stack syscall (kernel v6.6, libseccomp v2.5.5)
Add this syscall to match the profile in containerd containerd:a6e52c74fa
libseccomp:53267af3fb
kernel:c35559f94e
x86/shstk: Introduce map_shadow_stack syscall When operating with shadow stacks enabled, the kernel will automatically allocate shadow stacks for new threads, however in some cases userspace will need additional shadow stacks. The main example of this is the ucontext family of functions, which require userspace allocating and pivoting to userspace managed stacks. Unlike most other user memory permissions, shadow stacks need to be provisioned with special data in order to be useful. They need to be setup with a restore token so that userspace can pivot to them via the RSTORSSP instruction. But, the security design of shadow stacks is that they should not be written to except in limited circumstances. This presents a problem for userspace, as to how userspace can provision this special data, without allowing for the shadow stack to be generally writable. Signed-off-by: Sebastiaan van Stijn <github@gone.nl> (cherry picked from commit8826f402f9
) Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
c98179d3c7
commit
26d766450c
2 changed files with 2 additions and 0 deletions
|
@ -208,6 +208,7 @@
|
|||
"lstat",
|
||||
"lstat64",
|
||||
"madvise",
|
||||
"map_shadow_stack",
|
||||
"membarrier",
|
||||
"memfd_create",
|
||||
"memfd_secret",
|
||||
|
|
|
@ -200,6 +200,7 @@ func DefaultProfile() *Seccomp {
|
|||
"lstat",
|
||||
"lstat64",
|
||||
"madvise",
|
||||
"map_shadow_stack", // kernel v6.6, libseccomp v2.5.5
|
||||
"membarrier",
|
||||
"memfd_create",
|
||||
"memfd_secret",
|
||||
|
|
Loading…
Reference in a new issue