linux/arch/arm64
Timothy E Baldwin 1f8884d044 arm64: ptrace: Fix seccomp of traced syscall -1 (NO_SYSCALL)
commit df84fe94708985cdfb78a83148322bcd0a699472 upstream.

Since commit f086f67485 ("arm64: ptrace: add support for syscall
emulation"), if system call number -1 is called and the process is being
traced with PTRACE_SYSCALL, for example by strace, the seccomp check is
skipped and -ENOSYS is returned unconditionally (unless altered by the
tracer) rather than carrying out action specified in the seccomp filter.

The consequence of this is that it is not possible to reliably strace
a seccomp based implementation of a foreign system call interface in
which r7/x8 is permitted to be -1 on entry to a system call.

Also trace_sys_enter and audit_syscall_entry are skipped if a system
call is skipped.

Fix by removing the in_syscall(regs) check restoring the previous
behaviour which is like AArch32, x86 (which uses generic code) and
everything else.

Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Catalin Marinas<catalin.marinas@arm.com>
Cc: <stable@vger.kernel.org>
Fixes: f086f67485 ("arm64: ptrace: add support for syscall emulation")
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Tested-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Timothy E Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
Link: https://lore.kernel.org/r/90edd33b-6353-1228-791f-0336d94d5f8c@majoroak.me.uk
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-03-09 11:09:38 +01:00
..
boot dts64: mt7622: fix slow sd card access 2021-03-04 10:26:45 +01:00
configs
crypto crypto: arm64/sha - add missing module aliases 2021-03-04 10:26:44 +01:00
include arm64: Do not pass tagged addresses to __is_lm_address() 2021-02-07 15:35:47 +01:00
kernel arm64: ptrace: Fix seccomp of traced syscall -1 (NO_SYSCALL) 2021-03-09 11:09:38 +01:00
kvm KVM: arm64: Don't access PMCR_EL0 when no PMU is available 2021-01-17 14:05:38 +01:00
lib arm64: Change .weak to SYM_FUNC_START_WEAK_PI for arch/arm64/lib/mem*.S 2020-11-10 12:37:24 +01:00
mm arm64: Do not pass tagged addresses to __is_lm_address() 2021-02-07 15:35:47 +01:00
net
xen
Kbuild
Kconfig arm64: Extend workaround for erratum 1024718 to all versions of Cortex-A55 2021-03-04 10:26:49 +01:00
Kconfig.debug
Kconfig.platforms arm64: berlin: Select DW_APB_TIMER_OF 2020-11-05 11:43:36 +01:00
Makefile arm64: link with -z norelro regardless of CONFIG_RELOCATABLE 2020-11-01 12:01:02 +01:00