From ecbb1df01b546d3fd0895aa46714ce04af31c2f9 Mon Sep 17 00:00:00 2001 From: Uku Loskit Date: Sun, 5 Nov 2023 23:09:46 +0200 Subject: [PATCH] Kernel/Syscalls: Allow root to ptrace any process Previously root (euid=0) was not able to ptrace any dumpable process as expected. This change fixes this. --- Kernel/Syscalls/ptrace.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Kernel/Syscalls/ptrace.cpp b/Kernel/Syscalls/ptrace.cpp index 2403ea2b46..77c97ceedf 100644 --- a/Kernel/Syscalls/ptrace.cpp +++ b/Kernel/Syscalls/ptrace.cpp @@ -42,8 +42,7 @@ static ErrorOr handle_ptrace(Kernel::Syscall::SC_ptrace_params const& p auto peer_credentials = peer->process().credentials(); auto caller_credentials = caller.credentials(); - if ((peer_credentials->uid() != caller_credentials->euid()) - || (peer_credentials->uid() != peer_credentials->euid())) // Disallow tracing setuid processes + if (!caller_credentials->is_superuser() && ((peer_credentials->uid() != caller_credentials->euid()) || (peer_credentials->uid() != peer_credentials->euid()))) // Disallow tracing setuid processes return EACCES; if (!peer->process().is_dumpable())