Re: [PATCH] seccomp: passthrough uretprobe systemcall without filtering
From: Jiri Olsa
Date: Tue Jan 21 2025 - 11:55:59 EST
On Tue, Jan 21, 2025 at 11:16:31AM -0500, Steven Rostedt wrote:
>
> [ Watching this with popcorn from the sidelines, but I'll chime in anyway ]
>
> On Tue, 21 Jan 2025 15:38:48 +0100
> Jiri Olsa <olsajiri@xxxxxxxxx> wrote:
>
> > I'm still trying to come up with some other solution but wanted
> > to exhaust all the options I could think of
>
> I think this may have been mentioned, but is there a way that the kernel
> could know that this system call is being monitored by seccomp, and if so,
> just stick with the interrupt version? If not, enable the system call?
yes [1], the problem with that solution is that we install uretprobe
trampoline at function's uprobe entry probe, so we won't catch case
where seccomp is enabled in this probed function, like:
foo
uprobe -> install uretprobe trampoline
...
seccomp(SECCOMP_MODE_STRICT..
...
ret -> execute uretprobe trampoline with sys_uretprobe
I thought we could perhaps switch existing uretprobe trampoline to
int3 when we are in sys_seccomp, but another user thread might be
already executing the existing uretprobe trampoline, so I don't
think we can do that
jirka
[1] https://lore.kernel.org/bpf/20250114123257.GD19816@xxxxxxxxxx/