Commit 990f3c93 authored by Sebastian Andrzej Siewior's avatar Sebastian Andrzej Siewior Committed by Liu Jian
Browse files

bpf: Remove tst_run from lwt_seg6local_prog_ops.

mainline inclusion
from mainline-v6.11-rc1
commit c13fda93aca118b8e5cd202e339046728ee7dddb
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IARX44
CVE: CVE-2024-46754

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c13fda93aca118b8e5cd202e339046728ee7dddb



-------------------------------------------------

The syzbot reported that the lwt_seg6 related BPF ops can be invoked
via bpf_test_run() without without entering input_action_end_bpf()
first.

Martin KaFai Lau said that self test for BPF_PROG_TYPE_LWT_SEG6LOCAL
probably didn't work since it was introduced in commit 04d4b274e2a
("ipv6: sr: Add seg6local action End.BPF"). The reason is that the
per-CPU variable seg6_bpf_srh_states::srh is never assigned in the self
test case but each BPF function expects it.

Remove test_run for BPF_PROG_TYPE_LWT_SEG6LOCAL.

Suggested-by: default avatarMartin KaFai Lau <martin.lau@linux.dev>
Reported-by: default avatar <syzbot+608a2acde8c5a101d07d@syzkaller.appspotmail.com>
Fixes: d1542d4ae4df ("seg6: Use nested-BH locking for seg6_bpf_srh_states.")
Fixes: 004d4b27 ("ipv6: sr: Add seg6local action End.BPF")
Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
Acked-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/r/20240710141631.FbmHcQaX@linutronix.de


Signed-off-by: default avatarMartin KaFai Lau <martin.lau@kernel.org>
Signed-off-by: default avatarLiu Jian <liujian56@huawei.com>
parent b5213571
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -11094,7 +11094,6 @@ const struct bpf_verifier_ops lwt_seg6local_verifier_ops = {
};

const struct bpf_prog_ops lwt_seg6local_prog_ops = {
	.test_run		= bpf_prog_test_run_skb,
};

const struct bpf_verifier_ops cg_sock_verifier_ops = {