BUG: corrupted list in rxrpc_discard_prealloc
From: Xingyu Li <hidden>
Date: 2024-08-28 23:37:42
Also in:
lkml
Hi, We found a bug in Linux 6.10 using syzkaller. It is possibly a corrupted list bug. The bug report is as follows, but unfortunately there is no generated syzkaller reproducer. Bug report: bond0 (unregistering): Released all slaves list_del corruption. next->prev should be ffff88801ef15218, but was 0000000000000000. (next=ffff88802ed18218) ------------[ cut here ]------------ kernel BUG at lib/list_debug.c:67! Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI CPU: 0 PID: 2790 Comm: kworker/u4:9 Not tainted 6.10.0 #13 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 Workqueue: netns cleanup_net RIP: 0010:__list_del_entry_valid_or_report+0x11e/0x120 lib/list_debug.c:65 Code: 96 06 0f 0b 48 c7 c7 e0 5b a9 8b 4c 89 fe 48 89 d9 e8 96 ff 96 06 0f 0b 48 c7 c7 60 5c a9 8b 4c 89 fe 4c 89 f1 e8 82 ff 96 06 <0f> 0b 80 3d bd 35 c6 0a 00 74 01 c3 31 d2 eb 02 66 90 55 41 57 41 RSP: 0018:ffffc900097ef8e8 EFLAGS: 00010246 RAX: 000000000000006d RBX: ffff88802ed18220 RCX: 12f0e8d01e569d00 RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000 RBP: ffff888041824064 R08: ffffffff8172e30c R09: 1ffff920012fdebc R10: dffffc0000000000 R11: fffff520012fdebd R12: dffffc0000000000 R13: ffff88801ef15000 R14: ffff88802ed18218 R15: ffff88801ef15218 FS: 0000000000000000(0000) GS:ffff888063a00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00005605ff865d58 CR3: 0000000040bd2000 CR4: 0000000000350ef0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: <TASK> __list_del_entry_valid include/linux/list.h:124 [inline] __list_del_entry include/linux/list.h:215 [inline] list_del include/linux/list.h:229 [inline] rxrpc_discard_prealloc+0x27e/0x800 net/rxrpc/call_accept.c:208 rxrpc_listen+0x280/0x3a0 net/rxrpc/af_rxrpc.c:246 afs_close_socket+0xa4/0x310 fs/afs/rxrpc.c:112 afs_net_exit+0x5b/0xf0 fs/afs/main.c:155 ops_exit_list net/core/net_namespace.c:173 [inline] cleanup_net+0x810/0xcd0 net/core/net_namespace.c:640 process_one_work kernel/workqueue.c:3248 [inline] process_scheduled_works+0x977/0x1410 kernel/workqueue.c:3329 worker_thread+0xaa0/0x1020 kernel/workqueue.c:3409 kthread+0x2eb/0x380 kernel/kthread.c:389 ret_from_fork+0x49/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:244 </TASK> Modules linked in: ---[ end trace 0000000000000000 ]--- RIP: 0010:__list_del_entry_valid_or_report+0x11e/0x120 lib/list_debug.c:65 Code: 96 06 0f 0b 48 c7 c7 e0 5b a9 8b 4c 89 fe 48 89 d9 e8 96 ff 96 06 0f 0b 48 c7 c7 60 5c a9 8b 4c 89 fe 4c 89 f1 e8 82 ff 96 06 <0f> 0b 80 3d bd 35 c6 0a 00 74 01 c3 31 d2 eb 02 66 90 55 41 57 41 RSP: 0018:ffffc900097ef8e8 EFLAGS: 00010246 RAX: 000000000000006d RBX: ffff88802ed18220 RCX: 12f0e8d01e569d00 RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000 RBP: ffff888041824064 R08: ffffffff8172e30c R09: 1ffff920012fdebc R10: dffffc0000000000 R11: fffff520012fdebd R12: dffffc0000000000 R13: ffff88801ef15000 R14: ffff88802ed18218 R15: ffff88801ef15218 FS: 0000000000000000(0000) GS:ffff888063a00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00005605ff865d58 CR3: 0000000040bd2000 CR4: 0000000000350ef0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 -- Yours sincerely, Xingyu