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...

