summaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_kprobe.c
diff options
context:
space:
mode:
authorYafang Shao <laoar.shao@gmail.com>2023-07-09 02:56:24 +0000
committerAlexei Starovoitov <ast@kernel.org>2023-07-11 20:07:51 -0700
commitf1a414537ecc18b5882a57045ce3e4a11e528290 (patch)
treec930faa2d8c5ff46525cfccf2a109597080d1a07 /kernel/trace/trace_kprobe.c
parentedd7f49bb884139af9069dcf59d9f89f1f4ddf3f (diff)
downloadlinux-stable-f1a414537ecc18b5882a57045ce3e4a11e528290.tar.gz
linux-stable-f1a414537ecc18b5882a57045ce3e4a11e528290.tar.bz2
linux-stable-f1a414537ecc18b5882a57045ce3e4a11e528290.zip
bpf: Protect probed address based on kptr_restrict setting
The probed address can be accessed by userspace through querying the task file descriptor (fd). However, it is crucial to adhere to the kptr_restrict setting and refrain from exposing the address if it is not permitted. Signed-off-by: Yafang Shao <laoar.shao@gmail.com> Acked-by: Jiri Olsa <jolsa@kernel.org> Link: https://lore.kernel.org/r/20230709025630.3735-5-laoar.shao@gmail.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'kernel/trace/trace_kprobe.c')
-rw-r--r--kernel/trace/trace_kprobe.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
index 1b3fa7b854aa..249eb14d0f7a 100644
--- a/kernel/trace/trace_kprobe.c
+++ b/kernel/trace/trace_kprobe.c
@@ -1551,7 +1551,10 @@ int bpf_get_kprobe_info(const struct perf_event *event, u32 *fd_type,
} else {
*symbol = NULL;
*probe_offset = 0;
- *probe_addr = (unsigned long)tk->rp.kp.addr;
+ if (kallsyms_show_value(current_cred()))
+ *probe_addr = (unsigned long)tk->rp.kp.addr;
+ else
+ *probe_addr = 0;
}
return 0;
}