Re: [PATCH bpf v2] restore behaviour of CAP_SYS_ADMIN allowing the loading of networking bpf programs

From: Daniel Borkmann
Date: Mon Jul 06 2020 - 16:16:01 EST


On 7/6/20 10:11 PM, John Stultz wrote:
On Tue, Jun 23, 2020 at 5:54 PM Alexei Starovoitov
<alexei.starovoitov@xxxxxxxxx> wrote:
On Mon, Jun 22, 2020 at 12:44 PM John Stultz <john.stultz@xxxxxxxxxx> wrote:
On Sat, Jun 20, 2020 at 2:26 PM Maciej Åenczykowski
<zenczykowski@xxxxxxxxx> wrote:
From: Maciej Åenczykowski <maze@xxxxxxxxxx>

This is a fix for a regression introduced in 5.8-rc1 by:
commit 2c78ee898d8f10ae6fb2fa23a3fbaec96b1b7366
'bpf: Implement CAP_BPF'

Before the above commit it was possible to load network bpf programs
with just the CAP_SYS_ADMIN privilege.

The Android bpfloader happens to run in such a configuration (it has
SYS_ADMIN but not NET_ADMIN) and creates maps and loads bpf programs
for later use by Android's netd (which has NET_ADMIN but not SYS_ADMIN).

Cc: Alexei Starovoitov <ast@xxxxxxxxxx>
Cc: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
Reported-by: John Stultz <john.stultz@xxxxxxxxxx>
Fixes: 2c78ee898d8f ("bpf: Implement CAP_BPF")
Signed-off-by: Maciej Åenczykowski <maze@xxxxxxxxxx>

Thanks so much for helping narrow this regression down and submitting this fix!
It's much appreciated!

Tested-by: John Stultz <john.stultz@xxxxxxxxxx>

Applied to bpf tree. Thanks

Hey all,
Just wanted to follow up on this as I've not seen the regression fix
land in 5.8-rc4 yet? Is it still pending, or did it fall through a
gap?

No, it's in DaveM's -net tree currently, will go to Linus' tree on his next pull req:

https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=b338cb921e6739ff59ce32f43342779fe5ffa732