Re: Kernel stack read with PTRACE_EVENT_EXIT and io_uring threads

From: Michael Schmitz
Date: Tue Jun 22 2021 - 17:48:51 EST


Hi Eric,

On 23/06/21 9:02 am, Eric W. Biederman wrote:
Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> writes:

So I was more thinking of the debug patch for m68k to catch all the
_regular_ cases, and all the other random cases of ptrace_event() or
ptrace_notify().

Although maybe we've really caught them all. The exit case was clearly
missing, and the thread fork case was scrogged. There are patches for
the known problems. The patches I really don't like are the
verification ones to find any unknown ones..
We still have nios2 which copied the m68k logic at some point. I think
that is a processor that is still ``shipping'' and that people might
still be using in new designs.

I haven't looked closely enough to see what the other architectures with
caller saved registers are doing.

The challenging ones are /proc/pid/syscall and seccomp which want to see
all of the system call arguments. I think every architecture always
saves the system call arguments unconditionally, so those cases are
probably not as interesting. But they certain look like they could be
trouble.

Seccomp hasn't yet been implemented on m68k, though I'm working on that with Adrian. The sole secure_computing() call will happen in syscall_trace_enter(), so all system call arguments have been saved on the stack.

Haven't looked at /proc/pid/syscall yet ...

Cheers,

    Michael

Eric