Re: [PATCH 1/2] ptrace: Move setting/clearing ptrace_message into ptrace_stop

From: Kees Cook
Date: Fri Mar 18 2022 - 13:20:52 EST


On Fri, Mar 18, 2022 at 09:44:30AM -0500, Eric W. Biederman wrote:
> Kees Cook <keescook@xxxxxxxxxxxx> writes:
>
> > On Tue, Mar 15, 2022 at 06:21:08PM -0500, Eric W. Biederman wrote:
> >>
> >> Today ptrace_message is easy to overlook as it not a core part of
> >> ptrace_stop. It has been overlooked so much that there are places
> >> that set ptrace_message and don't clear it, and places that never set
> >> it. So if you get an unlucky sequence of events the ptracer may be
> >> able to read a ptrace_message that does not apply to the current
> >> ptrace stop.
> >>
> >> Move setting of ptrace_message into ptrace_stop so that it always gets
> >> set before the stop, and always gets cleared after the stop. This
> >> prevents non-sense from being reported to userspace and makes
> >> ptrace_message more visible in the ptrace helper functions so that
> >> kernel developers can see it.
> >>
> >> Signed-off-by: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx>
> >
> > This looks good to me. Did you happen to run the seccomp selftests
> > before/after these changes?
>
> I did not. This is a pure ptrace change. Do you see a way that seccomp
> could be involved?

Sorry, that wasn't clear: seccomp includes a number of ptrace tests as
well, especially involving handling process death, messages, and
signals. I'll give it a spin; so far it seems fine.

--
Kees Cook