Skip to content

Commit 1d661ed

Browse files
Adam-pi3borkmann
authored andcommitted
kprobes: Fix KRETPROBES when CONFIG_KRETPROBE_ON_RETHOOK is set
The recent kernel change in 73f9b91 ("kprobes: Use rethook for kretprobe if possible"), introduced a potential NULL pointer dereference bug in the KRETPROBE mechanism. The official Kprobes documentation defines that "Any or all handlers can be NULL". Unfortunately, there is a missing return handler verification to fulfill these requirements and can result in a NULL pointer dereference bug. This patch adds such verification in kretprobe_rethook_handler() function. Fixes: 73f9b91 ("kprobes: Use rethook for kretprobe if possible") Signed-off-by: Adam Zabrocki <[email protected]> Signed-off-by: Daniel Borkmann <[email protected]> Acked-by: Masami Hiramatsu <[email protected]> Cc: Steven Rostedt <[email protected]> Cc: Naveen N. Rao <[email protected]> Cc: Anil S. Keshavamurthy <[email protected]> Link: https://lore.kernel.org/bpf/[email protected]
1 parent b02d196 commit 1d661ed

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

kernel/kprobes.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2126,7 +2126,7 @@ static void kretprobe_rethook_handler(struct rethook_node *rh, void *data,
21262126
struct kprobe_ctlblk *kcb;
21272127

21282128
/* The data must NOT be null. This means rethook data structure is broken. */
2129-
if (WARN_ON_ONCE(!data))
2129+
if (WARN_ON_ONCE(!data) || !rp->handler)
21302130
return;
21312131

21322132
__this_cpu_write(current_kprobe, &rp->kp);

0 commit comments

Comments
 (0)