aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/kernel/bpf/core.c
diff options
context:
space:
mode:
authorYonghong Song <yonghong.song@linux.dev>2023-07-31 13:45:34 -0700
committerAlexei Starovoitov <ast@kernel.org>2023-07-31 17:35:02 -0700
commite99688eba2e90a600956e936bc335ece902a5d7f (patch)
tree4ed882047898b50f32c5e23612d71ae884496feb /kernel/bpf/core.c
parentnet: remove duplicate INDIRECT_CALLABLE_DECLARE of udp[6]_ehashfn (diff)
downloadwireguard-linux-e99688eba2e90a600956e936bc335ece902a5d7f.tar.xz
wireguard-linux-e99688eba2e90a600956e936bc335ece902a5d7f.zip
bpf: Fix an array-index-out-of-bounds issue in disasm.c
syzbot reported an array-index-out-of-bounds when printing out bpf insns. Further investigation shows the insn is illegal but is printed out due to log level 1 or 2 before actual insn verification in do_check(). This particular illegal insn is a MOVSX insn with offset value 2. The legal offset value for MOVSX should be 8, 16 and 32. The disasm sign-extension-size array index is calculated as (insn->off / 8) - 1 and offset value 2 gives an out-of-bound index -1. Tighten the checking for MOVSX insn in disasm.c to avoid array-index-out-of-bounds issue. Reported-by: syzbot+3758842a6c01012aa73b@syzkaller.appspotmail.com Fixes: f835bb622299 ("bpf: Add kernel/bpftool asm support for new instructions") Signed-off-by: Yonghong Song <yonghong.song@linux.dev> Acked-by: Eduard Zingerman <eddyz87@gmail.com> Link: https://lore.kernel.org/r/20230731204534.1975311-1-yonghong.song@linux.dev Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'kernel/bpf/core.c')
0 files changed, 0 insertions, 0 deletions