summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGang Ba <Gang.Ba@amd.com>2026-07-14 15:08:57 -0400
committerAlex Deucher <alexander.deucher@amd.com>2026-07-28 18:50:30 -0400
commit4db4c5ffd5585b72622ecf6ffedf2da258ee23f5 (patch)
treee91ea0b02dd46fd3b585bca48b073fc92fb28fcc
parent8c990ee9daa295462df24982ce6878db997a380a (diff)
downloadlinux-next-4db4c5ffd5585b72622ecf6ffedf2da258ee23f5.tar.gz
linux-next-4db4c5ffd5585b72622ecf6ffedf2da258ee23f5.zip
drm/amdkfd: Fix missing authorization check in KFD_IOC_DBG_TRAP_DISABLE
Prevent unauthorized termination of active GPU debug sessions. Previously, users with /dev/kfd access could terminate another process's debug session without proper ownership or ptrace authorization. Signed-off-by: Gang Ba <Gang.Ba@amd.com> Reviewed-by: Kent Russell <kent.russell@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdkfd/kfd_chardev.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
index 2c1a936459ac..6b681d948c04 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
@@ -3112,10 +3112,14 @@ static int kfd_ioctl_set_debug_trap(struct file *filep, struct kfd_process *p, v
goto out;
}
- /* Check if target is still PTRACED. */
+ /*
+ * Verify debugger has permission to debug target process.
+ * For cross-process debugging, require active ptrace relationship.
+ * This applies to ALL operations to prevent unauthorized interference.
+ */
rcu_read_lock();
- if (target != p && args->op != KFD_IOC_DBG_TRAP_DISABLE
- && ptrace_parent(target->lead_thread) != current) {
+ if (target != p && ptrace_parent(target->lead_thread) != current
+ && target->debugger_process != p) {
pr_err("PID %i is not PTRACED and cannot be debugged\n", args->pid);
r = -EPERM;
}