On CloudLinux 8.10 with kernel 4.18.0-553.111.1.lve.el8.x86_64 (reproduced on two independent hosts), the bpf() syscall rejects BPF_PROG_TYPE_LSM even though CONFIG_BPF_LSM=y, bpf is in /sys/kernel/security/lsm, BTF is present, and the kernel-internal symbols (bpf_trampoline_*, bpf_ringbuf_*) are exported.
Reproduction:
bpftool feature probe | grep 'program_type lsm is'
# eBPF program_type lsm is NOT available
strace shows the load syscall returning EINVAL at the dispatch layer (no verifier log). The same probe on AlmaLinux 8.10 (4.18.0-553.89.1.el8_10.x86_64, same upstream RHEL 8.10 base) returns "is available" and the verifier engages normally.
Question: is the absence of userspace BPF_PROG_TYPE_LSM support in the lve kernel intentional (e.g. dropped by an lve patch), or is it an oversight in the backport? Could it be exposed in a future lve kernel release? The internal subsystem appears to be present; only the userspace loader path is gated.
This blocks running BPF LSM-based security tooling on stock CL 8 hosts. Switching to kernel-lts since it's EL9 kernel I assume it will work ?
Thanks.
Reproduction:
bpftool feature probe | grep 'program_type lsm is'
# eBPF program_type lsm is NOT available
strace shows the load syscall returning EINVAL at the dispatch layer (no verifier log). The same probe on AlmaLinux 8.10 (4.18.0-553.89.1.el8_10.x86_64, same upstream RHEL 8.10 base) returns "is available" and the verifier engages normally.
Question: is the absence of userspace BPF_PROG_TYPE_LSM support in the lve kernel intentional (e.g. dropped by an lve patch), or is it an oversight in the backport? Could it be exposed in a future lve kernel release? The internal subsystem appears to be present; only the userspace loader path is gated.
This blocks running BPF LSM-based security tooling on stock CL 8 hosts. Switching to kernel-lts since it's EL9 kernel I assume it will work ?
Thanks.
Comment