[syzbot] [io-uring?] [net?] WARNING: refcount bug in zcrx_unregister_user

syzbot <[email protected]>
Newsgroups org.kernel.vger.io-uring,org.kernel.vger.linux-kernel,org.kernel.vger.netdev
Message-ID <[email protected]>
Hello,

syzbot found the following issue on:

HEAD commit:    ea2bff00da89 Add linux-next specific files for 20260806
git tree:       linux-next
console output: https://syzkaller.appspot.com/x/log.txt?x=10e27e49580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=b2f9169913eb6d73
dashboard link: https://syzkaller.appspot.com/bug?extid=a43f81e0646c5bbd2b88
compiler:       Debian clang version 22.1.8 (++20260613092233+e80beda6e255-1~exp1~20260613092250.77), Debian LLD 22.1.8
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=10d92132580000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/473ce49245bc/disk-ea2bff00.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/4d5bfcd186f5/vmlinux-ea2bff00.xz
kernel image: https://storage.googleapis.com/syzbot-assets/281694927321/bzImage-ea2bff00.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: [email protected]

------------[ cut here ]------------
refcount_t: decrement hit 0; leaking memory.
WARNING: lib/refcount.c:31 at refcount_warn_saturate+0x70/0x110 lib/refcount.c:31, CPU#0: syz.0.17/5808
Modules linked in:
CPU: 0 UID: 0 PID: 5808 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/24/2026
RIP: 0010:refcount_warn_saturate+0x70/0x110 lib/refcount.c:31
Code: c6 c0 fe 36 8f e8 90 e5 ee fc 83 fb 01 7e 22 83 fb 02 74 39 83 fb 03 74 47 83 fb 04 75 68 e8 f7 df ee fc 48 8d 3d b0 16 8b 0b <67> 48 0f b9 3a eb 66 85 db 74 3e 83 fb 01 75 4c e8 db df ee fc 48
RSP: 0018:ffffc900032d78c8 EFLAGS: 00010293
RAX: ffffffff84d8a429 RBX: 0000000000000004 RCX: ffff888032abddc0
RDX: 0000000000000000 RSI: ffffffff8f36fec0 RDI: ffffffff9063bae0
RBP: ffffc900032d7a10 R08: ffff888032abddc0 R09: 0000000000000005
R10: 0000000000000004 R11: 0000000000000000 R12: ffff8880353d2700
R13: dffffc0000000000 R14: ffff8880353d2744 R15: 0000000000000001
FS:  00005555674e4500(0000) GS:ffff888124f12000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000200000002020 CR3: 0000000079e90000 CR4: 00000000003526f0
Call Trace:
 <TASK>
 __refcount_dec include/linux/refcount.h:461 [inline]
 refcount_dec include/linux/refcount.h:476 [inline]
 ref_tracker_free+0x706/0x830 lib/ref_tracker.c:303
 netdev_tracker_free include/linux/netdevice.h:4545 [inline]
 netdev_put include/linux/netdevice.h:4562 [inline]
 io_close_queue io_uring/zcrx.c:582 [inline]
 zcrx_unregister_user+0x2d8/0x430 io_uring/zcrx.c:681
 zcrx_unregister io_uring/zcrx.c:688 [inline]
 io_register_zcrx+0x875/0xc00 io_uring/zcrx.c:1021
 __io_uring_register io_uring/register.c:942 [inline]
 __do_sys_io_uring_register io_uring/register.c:1040 [inline]
 __se_sys_io_uring_register+0xc23/0x1ab0 io_uring/register.c:1017
 do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline]
 do_syscall_64+0x166/0x510 arch/x86/entry/syscall_64.c:84
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fa6a959e0d9
Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffe56af7168 EFLAGS: 00000246 ORIG_RAX: 00000000000001ab
RAX: ffffffffffffffda RBX: 00007fa6a9825fa0 RCX: 00007fa6a959e0d9
RDX: 0000200000000100 RSI: 0000000000000020 RDI: 0000000000000003
RBP: 00007fa6a9635024 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000001 R11: 0000000000000246 R12: 0000000000000000
R13: 00007fa6a9825fac R14: 00007fa6a9825fa0 R15: 00007fa6a9825fa0
 </TASK>
----------------
Code disassembly (best guess), 5 bytes skipped:
   0:	e8 90 e5 ee fc       	call   0xfceee595
   5:	83 fb 01             	cmp    $0x1,%ebx
   8:	7e 22                	jle    0x2c
   a:	83 fb 02             	cmp    $0x2,%ebx
   d:	74 39                	je     0x48
   f:	83 fb 03             	cmp    $0x3,%ebx
  12:	74 47                	je     0x5b
  14:	83 fb 04             	cmp    $0x4,%ebx
  17:	75 68                	jne    0x81
  19:	e8 f7 df ee fc       	call   0xfceee015
  1e:	48 8d 3d b0 16 8b 0b 	lea    0xb8b16b0(%rip),%rdi        # 0xb8b16d5
* 25:	67 48 0f b9 3a       	ud1    (%edx),%rdi <-- trapping instruction
  2a:	eb 66                	jmp    0x92
  2c:	85 db                	test   %ebx,%ebx
  2e:	74 3e                	je     0x6e
  30:	83 fb 01             	cmp    $0x1,%ebx
  33:	75 4c                	jne    0x81
  35:	e8 db df ee fc       	call   0xfceee015
  3a:	48                   	rex.W


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at [email protected].

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

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.

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.