units/systemd-udevd: allow bpf() syscall

Programs run by udev triggers may need to execute the bpf() syscall. Even more
so, since on a cgroup v2 system, the only way to set up device access filtering
is to install a BPF program on the cgroup in question and one way of passing
data to such program is through BPF maps, which can only be access using the
bpf() syscall. One such use case was identified in RHBZ#2025264 related to
snap-device-helper, and led to RHBZ#2027627 being filed.

Unfortunately there is no finer grained control over what gets passed in the
syscall, so just enable bpf() and leave fine grained mediation to other
security layers (eg. SELinux).

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2027627

Signed-off-by: Maciek Borzecki <maciek.borzecki@gmail.com>
This commit is contained in:
Maciek Borzecki 2021-11-30 11:07:30 +01:00 committed by Zbigniew Jędrzejewski-Szmek
parent f66d548c1a
commit 0ddd608a6d

View file

@ -35,7 +35,7 @@ MemoryDenyWriteExecute=yes
RestrictAddressFamilies=AF_UNIX AF_NETLINK AF_INET AF_INET6
RestrictRealtime=yes
RestrictSUIDSGID=yes
SystemCallFilter=@system-service @module @raw-io
SystemCallFilter=@system-service @module @raw-io bpf
SystemCallErrorNumber=EPERM
SystemCallArchitectures=native
LockPersonality=yes