Re: [syzbot] [bpf?] UBSAN: array-index-out-of-bounds in bpf_mprog_detach

From: Daniel Borkmann
Date: Fri Aug 04 2023 - 09:18:19 EST


On 8/4/23 1:39 AM, Martin KaFai Lau wrote:
On 7/29/23 5:48 PM, syzbot wrote:
syzbot found the following issue on:

HEAD commit:    ec87f05402f5 octeontx2-af: Install TC filter rules in hard..
git tree:       net-next
console output:https://syzkaller.appspot.com/x/log.txt?x=12a76df1a80000
kernel config:https://syzkaller.appspot.com/x/.config?x=8acaeb93ad7c6aaa
dashboard link:https://syzkaller.appspot.com/bug?extid=0c06ba0f831fe07a8f27
compiler:       gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image:https://storage.googleapis.com/syzbot-assets/0fc53904fc08/disk-ec87f054.raw.xz
vmlinux:https://storage.googleapis.com/syzbot-assets/aee64718ea5c/vmlinux-ec87f054.xz
kernel image:https://storage.googleapis.com/syzbot-assets/d3b6d3f4cfbc/bzImage-ec87f054.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by:syzbot+0c06ba0f831fe07a8f27@xxxxxxxxxxxxxxxxxxxxxxxxx

================================================================================
UBSAN: array-index-out-of-bounds in ./include/linux/bpf_mprog.h:292:24
index 4294967295 is out of range for type 'bpf_mprog_fp [64]'
CPU: 1 PID: 13232 Comm: syz-executor.1 Not tainted 6.5.0-rc2-syzkaller-00573-gec87f05402f5 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2023
Call Trace:
  <TASK>
  __dump_stack lib/dump_stack.c:88 [inline]
  dump_stack_lvl+0x125/0x1b0 lib/dump_stack.c:106
  ubsan_epilogue lib/ubsan.c:217 [inline]
  __ubsan_handle_out_of_bounds+0x111/0x150 lib/ubsan.c:348
  bpf_mprog_read include/linux/bpf_mprog.h:292 [inline]
  bpf_mprog_fetch kernel/bpf/mprog.c:307 [inline]
  bpf_mprog_detach+0xcd7/0xd50 kernel/bpf/mprog.c:381
  tcx_prog_detach+0x258/0x950 kernel/bpf/tcx.c:78
  bpf_prog_detach kernel/bpf/syscall.c:3877 [inline]
  __sys_bpf+0x36ee/0x4ec0 kernel/bpf/syscall.c:5357

Was able to repro, fix + selftest is here:
https://lore.kernel.org/bpf/20230804131112.11012-1-daniel@xxxxxxxxxxxxx/

Thanks,
Daniel