syzbot


WARNING: held lock freed in mptcp_worker

Status: upstream: reported on 2025/08/12 00:35
Reported-by: syzbot+b4b7d8a00eb1891989c5@syzkaller.appspotmail.com
First crash: 16d, last: 16d

Sample crash report:
=========================
WARNING: held lock freed!
5.15.189-syzkaller #0 Not tainted
-------------------------
kworker/1:4/4226 is freeing memory ffff88805a731800-ffff88805a73237f, with a lock still held there!
ffff88805a731920 (sk_lock-AF_INET6){+.+.}-{0:0}, at: lock_sock include/net/sock.h:1694 [inline]
ffff88805a731920 (sk_lock-AF_INET6){+.+.}-{0:0}, at: mptcp_worker+0x31/0xc60 net/mptcp/protocol.c:2507
3 locks held by kworker/1:4/4226:
 #0: ffff888016870938 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x760/0x1000 kernel/workqueue.c:-1
 #1: ffffc9000350fd00 ((work_completion)(&msk->work)){+.+.}-{0:0}, at: process_one_work+0x7a3/0x1000 kernel/workqueue.c:2285
 #2: ffff88805a731920 (sk_lock-AF_INET6){+.+.}-{0:0}, at: lock_sock include/net/sock.h:1694 [inline]
 #2: ffff88805a731920 (sk_lock-AF_INET6){+.+.}-{0:0}, at: mptcp_worker+0x31/0xc60 net/mptcp/protocol.c:2507

stack backtrace:
CPU: 1 PID: 4226 Comm: kworker/1:4 Not tainted 5.15.189-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025
Workqueue: events mptcp_worker
Call Trace:
 <TASK>
 dump_stack_lvl+0x168/0x230 lib/dump_stack.c:106
 print_freed_lock_bug kernel/locking/lockdep.c:6401 [inline]
 debug_check_no_locks_freed+0x2f2/0x3c0 kernel/locking/lockdep.c:6434
 slab_free_hook mm/slub.c:1677 [inline]
 slab_free_freelist_hook+0x76/0x170 mm/slub.c:1731
 slab_free mm/slub.c:3499 [inline]
 kmem_cache_free+0x8f/0x210 mm/slub.c:3515
 sk_prot_free net/core/sock.c:1898 [inline]
 __sk_destruct+0x54b/0x820 net/core/sock.c:1986
 sock_put include/net/sock.h:1939 [inline]
 __mptcp_destroy_sock+0x5c1/0x720 net/mptcp/protocol.c:2775
 mptcp_worker+0x870/0xc60 net/mptcp/protocol.c:2533
 process_one_work+0x863/0x1000 kernel/workqueue.c:2310
 worker_thread+0xaa8/0x12a0 kernel/workqueue.c:2457
 kthread+0x436/0x520 kernel/kthread.c:334
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:287
 </TASK>
------------[ cut here ]------------
refcount_t: underflow; use-after-free.
WARNING: CPU: 1 PID: 4226 at lib/refcount.c:28 refcount_warn_saturate+0x11b/0x1a0 lib/refcount.c:28
Modules linked in:
CPU: 1 PID: 4226 Comm: kworker/1:4 Not tainted 5.15.189-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025
Workqueue: events mptcp_worker
RIP: 0010:refcount_warn_saturate+0x11b/0x1a0 lib/refcount.c:28
Code: 09 01 48 c7 c7 60 56 59 8a e8 c1 f1 c2 05 0f 0b eb c4 e8 e8 4d 9d fd c6 05 47 54 7b 09 01 48 c7 c7 c0 56 59 8a e8 a5 f1 c2 05 <0f> 0b eb a8 e8 cc 4d 9d fd c6 05 28 54 7b 09 01 48 c7 c7 00 56 59
RSP: 0018:ffffc9000350fc28 EFLAGS: 00010246

RAX: 424bfd1515c27000 RBX: 0000000000000003 RCX: ffff8880619c9dc0
RDX: 0000000000000000 RSI: 0000000080000000 RDI: 0000000000000000
RBP: ffffc9000350fdb8 R08: dffffc0000000000 R09: ffffed10172267a8
R10: ffffed10172267a8 R11: 1ffff110172267a7 R12: dffffc0000000000
R13: ffff88802333db18 R14: 0000000000000003 R15: ffff8880b913f008
FS:  0000000000000000(0000) GS:ffff8880b9100000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f5e3cabe2f8 CR3: 00000000630dd000 CR4: 00000000003506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 process_one_work+0x863/0x1000 kernel/workqueue.c:2310
 worker_thread+0xaa8/0x12a0 kernel/workqueue.c:2457
 kthread+0x436/0x520 kernel/kthread.c:334
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:287
 </TASK>

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/08/12 00:34 linux-5.15.y c79648372d02 c06e8995 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan WARNING: held lock freed in mptcp_worker
* Struck through repros no longer work on HEAD.