Re: [PATCH V34 23/29] bpf: Restrict bpf when kernel lockdown is in confidentiality mode
From: Matthew Garrett <hidden>
Date: 2019-06-24 21:31:01
Also in:
bpf, linux-api, lkml, netdev
From: Matthew Garrett <hidden>
Date: 2019-06-24 21:31:01
Also in:
bpf, linux-api, lkml, netdev
On Mon, Jun 24, 2019 at 2:22 PM Daniel Borkmann [off-list ref] wrote:
Agree, for example, bpf_probe_write_user() can never write into kernel memory (only user one). Just thinking out loud, wouldn't it be cleaner and more generic to perform this check at the actual function which performs the kernel memory without faulting? All three of these are in mm/maccess.c, and the very few occasions that override the probe_kernel_read symbol are calling eventually into __probe_kernel_read(), so this would catch all of them wrt lockdown restrictions. Otherwise you'd need to keep tracking every bit of new code being merged that calls into one of these, no? That way you only need to do it once like below and are guaranteed that the check catches these in future as well.
Not all paths into probe_kernel_read/write are from entry points that need to be locked down (eg, as far as I can tell ftrace can't leak anything interesting here).