Skip to content

Commit df84fe9

Browse files
TimothyEBaldwinwilldeacon
authored andcommitted
arm64: ptrace: Fix seccomp of traced syscall -1 (NO_SYSCALL)
Since commit f086f67 ("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: f086f67 ("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>
1 parent 430251c commit df84fe9

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

arch/arm64/kernel/ptrace.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1797,7 +1797,7 @@ int syscall_trace_enter(struct pt_regs *regs)
17971797

17981798
if (flags & (_TIF_SYSCALL_EMU | _TIF_SYSCALL_TRACE)) {
17991799
tracehook_report_syscall(regs, PTRACE_SYSCALL_ENTER);
1800-
if (!in_syscall(regs) || (flags & _TIF_SYSCALL_EMU))
1800+
if (flags & _TIF_SYSCALL_EMU)
18011801
return NO_SYSCALL;
18021802
}
18031803

0 commit comments

Comments
 (0)