Re: [PATCH 4/5] kprobes: Do not expose probe addresses to non-CAP_SYSLOG

From: Masami Hiramatsu
Date: Fri Jul 10 2020 - 10:09:33 EST


On Thu, 2 Jul 2020 16:26:37 -0700
Kees Cook <keescook@xxxxxxxxxxxx> wrote:

> The kprobe show() functions were using "current"'s creds instead
> of the file opener's creds for kallsyms visibility. Fix to use
> seq_file->file->f_cred.

This looks good to me.

Acked-by: Masami Hiramatsu <mhiramat@xxxxxxxxxx>

Thanks!

>
> Cc: stable@xxxxxxxxxxxxxxx
> Fixes: 81365a947de4 ("kprobes: Show address of kprobes if kallsyms does")
> Fixes: ffb9bd68ebdb ("kprobes: Show blacklist addresses as same as kallsyms does")
> Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
> ---
> kernel/kprobes.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/kprobes.c b/kernel/kprobes.c
> index d4de217e4a91..2e97febeef77 100644
> --- a/kernel/kprobes.c
> +++ b/kernel/kprobes.c
> @@ -2448,7 +2448,7 @@ static void report_probe(struct seq_file *pi, struct kprobe *p,
> else
> kprobe_type = "k";
>
> - if (!kallsyms_show_value(current_cred()))
> + if (!kallsyms_show_value(pi->file->f_cred))
> addr = NULL;
>
> if (sym)
> @@ -2540,7 +2540,7 @@ static int kprobe_blacklist_seq_show(struct seq_file *m, void *v)
> * If /proc/kallsyms is not showing kernel address, we won't
> * show them here either.
> */
> - if (!kallsyms_show_value(current_cred()))
> + if (!kallsyms_show_value(m->file->f_cred))
> seq_printf(m, "0x%px-0x%px\t%ps\n", NULL, NULL,
> (void *)ent->start_addr);
> else
> --
> 2.25.1
>


--
Masami Hiramatsu <mhiramat@xxxxxxxxxx>