On Mon, Nov 16, 2020 at 3:37 PM Thomas Gleixner <[email protected]> wrote:
>
> On Mon, Nov 16 2020 at 15:04, Andy Lutomirski wrote:
>
> > On Mon, Nov 16, 2020 at 2:01 PM Thomas Gleixner <[email protected]> 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().
>
> which is what copy_from_user_nmi() already does.

Whoops.  I thought I checked that...

Reply via email to