Skip to content

Commit 881a9c9

Browse files
WOnder93Alexei Starovoitov
authored andcommitted
bpf: Do not audit capability check in do_jit()
The failure of this check only results in a security mitigation being applied, slightly affecting performance of the compiled BPF program. It doesn't result in a failed syscall, an thus auditing a failed LSM permission check for it is unwanted. For example with SELinux, it causes a denial to be reported for confined processes running as root, which tends to be flagged as a problem to be fixed in the policy. Yet dontauditing or allowing CAP_SYS_ADMIN to the domain may not be desirable, as it would allow/silence also other checks - either going against the principle of least privilege or making debugging potentially harder. Fix it by changing it from capable() to ns_capable_noaudit(), which instructs the LSMs to not audit the resulting denials. Link: https://bugzilla.redhat.com/show_bug.cgi?id=2369326 Fixes: d4e89d2 ("x86/bpf: Call branch history clearing sequence on exit") Signed-off-by: Ondrej Mosnacek <[email protected]> Reviewed-by: Paul Moore <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Alexei Starovoitov <[email protected]>
1 parent 4e90776 commit 881a9c9

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

arch/x86/net/bpf_jit_comp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2701,7 +2701,7 @@ st: if (is_imm8(insn->off))
27012701
/* Update cleanup_addr */
27022702
ctx->cleanup_addr = proglen;
27032703
if (bpf_prog_was_classic(bpf_prog) &&
2704-
!capable(CAP_SYS_ADMIN)) {
2704+
!ns_capable_noaudit(&init_user_ns, CAP_SYS_ADMIN)) {
27052705
u8 *ip = image + addrs[i - 1];
27062706

27072707
if (emit_spectre_bhb_barrier(&prog, ip, bpf_prog))

0 commit comments

Comments
 (0)