Re: [PATCH RFC] Allow introspection to already attached ptracer in __ptrace_may_access

From: Oleg Nesterov
Date: Thu Jan 08 2015 - 14:20:22 EST


On 01/08, Stijn Volckaert wrote:
>
> From that point onwards, the debugger can no longer perform any
> operations that go through __ptrace_may_access. These include
> process_vm_{read,write}v but also PTRACE_{POKE,PEEK}{TEXT,DATA}.

PTRACE_POKE/PEEK should work? not that this really matters...

> I don't see
> how Yama can possibly tell that tracee B and the debugger are still related
> at this point so I see no easy fix for this.

Well, perhaps yama can also have PR_SET_PTRACEE, I dunno.

> Patching __ptrace_may_access
> might indeed not be a good idea as it is used to check for credentials to
> perform a bunch of other non-ptrace operations throughout the kernel.

Just add the "ptrace_parent(task) == current" check into
ptracer_exception_found() ?

> The possible solutions that I can see right now are:
> 1) Adding some sort of original_parent field to task_struct, just for the
> sake of relationship tracking

And what should we do with this pointer if original_parent exits?

> 2) Changing the credentials check in process_vm_{read,write}v only so that
> you don't go all the way into __ptrace_may_access if you're already attached
> as a ptracer

This really doesn't look good, imo.

Oleg.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/