On Mon, Nov 16, 2020 at 2:01 PM Thomas Gleixner <t...@linutronix.de> wrote:
>  arch/x86/kernel/dumpstack.c |   23 +++++++++++++++++++----
>  1 file changed, 19 insertions(+), 4 deletions(-)
>
> --- a/arch/x86/kernel/dumpstack.c
> +++ b/arch/x86/kernel/dumpstack.c
> @@ -78,6 +78,9 @@ static int copy_code(struct pt_regs *reg
>         if (!user_mode(regs))
>                 return copy_from_kernel_nofault(buf, (u8 *)src, nbytes);
>
> +       /* The user space code from other tasks cannot be accessed. */
> +       if (regs != task_pt_regs(current))
> +               return -EPERM;

Depending on exactly where this gets called, this may not be
sufficient.  You should also check nmi_uaccess_okay().

--Andy

Reply via email to