Commit 189e5deb authored by Ondrej Mosnacek's avatar Ondrej Mosnacek Committed by Alexei Starovoitov
Browse files

bpf, arm64: Do not audit capability check in do_jit()



Analogically to the x86 commit 881a9c9c ("bpf: Do not audit
capability check in do_jit()"), change the capable() call to
ns_capable_noaudit() in order to avoid spurious SELinux denials in audit
log.

The commit log from that commit applies here as well:
"""
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.
"""

Fixes: f300769e ("arm64: bpf: Only mitigate cBPF programs loaded by unprivileged users")
Signed-off-by: default avatarOndrej Mosnacek <omosnace@redhat.com>
Link: https://lore.kernel.org/r/20251204125916.441021-1-omosnace@redhat.com


Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent d70f79fe
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1004,7 +1004,7 @@ static void __maybe_unused build_bhb_mitigation(struct jit_ctx *ctx)
	    arm64_get_spectre_v2_state() == SPECTRE_VULNERABLE)
		return;

	if (capable(CAP_SYS_ADMIN))
	if (ns_capable_noaudit(&init_user_ns, CAP_SYS_ADMIN))
		return;

	if (supports_clearbhb(SCOPE_SYSTEM)) {