Re: [syzbot] [kasan?] [mm?] WARNING in __kfence_free (3)

From: syzbot
Date: Wed Nov 15 2023 - 23:47:30 EST


syzbot has found a reproducer for the following issue on:

HEAD commit: c42d9eeef8e5 Merge tag 'hardening-v6.7-rc2' of git://git.k..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=13de8198e80000
kernel config: https://syzkaller.appspot.com/x/.config?x=65a222833c8bc575
dashboard link: https://syzkaller.appspot.com/bug?extid=59f37b0ab4c558a5357c
compiler: aarch64-linux-gnu-gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40
userspace arch: arm64
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=15bd8f98e80000

Downloadable assets:
disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/384ffdcca292/non_bootable_disk-c42d9eee.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/e62e8cdf4401/vmlinux-c42d9eee.xz
kernel image: https://storage.googleapis.com/syzbot-assets/d4650ef9b454/Image-c42d9eee.gz.xz

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

------------[ cut here ]------------
WARNING: CPU: 0 PID: 138 at mm/kfence/core.c:1147 __kfence_free+0x7c/0xb4 mm/kfence/core.c:1147
Modules linked in:
CPU: 0 PID: 138 Comm: kworker/u4:6 Not tainted 6.7.0-rc1-syzkaller-00019-gc42d9eeef8e5 #0
Hardware name: linux,dummy-virt (DT)
Workqueue: events_unbound bpf_map_free_deferred
pstate: 81400009 (Nzcv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
pc : __kfence_free+0x7c/0xb4 mm/kfence/core.c:1147
lr : kfence_free include/linux/kfence.h:187 [inline]
lr : __slab_free+0x48c/0x508 mm/slub.c:3614
sp : ffff800082c3bbb0
x29: ffff800082c3bbb0 x28: faff000002c03e00 x27: 0000000000000000
x26: f4ff000002c18028 x25: ffff00007ff8f138 x24: ffff00007ff8f000
x23: 0000000000000001 x22: ffff00007ff8f000 x21: ffff00007ff8f000
x20: ffff80008024297c x19: fffffc0001ffe3c0 x18: 0000000000000000
x17: 0000000000000000 x16: 0000000000000000 x15: 00000000200122aa
x14: 0000000000000273 x13: 0000000000000000 x12: 0000000000000001
x11: 0000000000000001 x10: 40fbfcfeb3055ba3 x9 : 0000000000000000
x8 : ffff800082c3bc90 x7 : 0000000000000000 x6 : 0000000000000000
x5 : ffff80008024297c x4 : ffff00007f868000 x3 : ffff8000824a02b8
x2 : f0ff000008cd7140 x1 : ffff00007f8a1350 x0 : ffff00007ff8f000
Call trace:
__kfence_free+0x7c/0xb4 mm/kfence/core.c:1147
kfence_free include/linux/kfence.h:187 [inline]
__slab_free+0x48c/0x508 mm/slub.c:3614
do_slab_free mm/slub.c:3757 [inline]
slab_free mm/slub.c:3810 [inline]
__kmem_cache_free+0x220/0x230 mm/slub.c:3822
kfree+0x5c/0x74 mm/slab_common.c:1056
kvfree+0x3c/0x4c mm/util.c:653
bpf_map_area_free+0x10/0x1c kernel/bpf/syscall.c:325
htab_map_free+0x134/0x298 kernel/bpf/hashtab.c:1556
bpf_map_free_deferred+0x44/0x60 kernel/bpf/syscall.c:701
process_one_work+0x148/0x258 kernel/workqueue.c:2630
process_scheduled_works kernel/workqueue.c:2703 [inline]
worker_thread+0x2b4/0x3cc kernel/workqueue.c:2784
kthread+0x114/0x118 kernel/kthread.c:388
ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:857
---[ end trace 0000000000000000 ]---


---
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.