Messages in this thread | | | From | (Eric W. Biederman) | Date | Wed, 23 Jun 2021 09:33:50 -0500 | Subject | Re: Kernel stack read with PTRACE_EVENT_EXIT and io_uring threads |
| |
Linus Torvalds <torvalds@linux-foundation.org> writes:
> On Tue, Jun 22, 2021 at 1:53 PM Eric W. Biederman <ebiederm@xmission.com> wrote: >> >> Playing with it some more I think I have everything working working >> except for PTRACE_EVENT_SECCOMP (which can stay ptrace_event) and >> group_exit(2). >> >> Basically in exit sending yourself a signal and then calling do_exit >> from the signal handler is not unreasonable, as exit is an ordinary >> system call. > > Ok, this is a bit odd, but I do like the concept of just making > ptrace_event just post a signal, and have all ptrace things always be > handled at signal time (or the special system call entry/exit, which > is fine too). > >> For purposes of discussion this is my current draft implementation. > > I didn't check what is so different about exit_group() that you left > that as an exercise for the reader, but if that ends up then removing > the whole "wait synchromously for ptrace" cases for good I don't > _hate_ this. It's a bit odd, but it would be really nice to limit > where ptrace picks up data.
I am still figuring out exit_group. I am hoping for sometime today. My intuition tells me I can do it, and I have a sense of what threads I need to pull to get there. I just don't know what the code is going to look like yet.
Basically solving exit_group means moving ptrace_event out of do_exit.
> We do end up doing that stuff in "get_signal()", and that means that > we have the interaction with io_uring calling it directly, but it's at > least not a new thing.
The ugliest bit is having to repeat the wait_for_vfork_done both in fork and in get_signal.
Eric
| |