syzbot
WARNING: refcount bug in config_item_get
Status:
premoderation: reported C repro on 2026/07/28 17:48
Reported-by: syzbot+5e849ced214eddf56628@syzkaller.appspotmail.com
First crash: 5d10h, last: 20h14m
Sample crash report:
Mass Storage Function, version: 2009/09/11
LUN: removable file: (no medium)
------------[ cut here ]------------
refcount_t: addition on 0; use-after-free.
WARNING: CPU: 0 PID: 513 at lib/refcount.c:25 refcount_warn_saturate+0xfd/0x1c0 lib/refcount.c:25
Modules linked in:
CPU: 0 UID: 0 PID: 513 Comm: syz-executor170 Not tainted syzkaller #0 200dea8a17c83f35b0a1e1238c384757fc17b797
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/24/2026
RIP: 0010:refcount_warn_saturate+0xfd/0x1c0 lib/refcount.c:25
Code: 00 00 00 e8 c5 a1 d8 fe 5b 41 5e 5d c3 cc cc cc cc cc e8 b6 a1 d8 fe c6 05 b3 74 36 05 01 48 c7 c7 c0 eb 51 86 e8 d3 79 55 fe <0f> 0b eb da e8 9a a1 d8 fe c6 05 98 74 36 05 01 48 c7 c7 20 ec 51
RSP: 0018:ffffc9000176fc38 EFLAGS: 00010246
RAX: 651fefe182003800 RBX: 0000000000000002 RCX: ffff8881308dcc00
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000002
RBP: ffffc9000176fc48 R08: 0000000000000003 R09: 0000000000000004
R10: dffffc0000000000 R11: fffffbfff0e9f34c R12: ffff88810cf904e0
R13: dffffc0000000000 R14: ffff88810d3b7c24 R15: 0000000000000000
FS: 0000555591db23c0(0000) GS:ffff8881f6e00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fbb0546587c CR3: 000000010d336000 CR4: 00000000003526b0
Call Trace:
<TASK>
__refcount_add include/linux/refcount.h:-1 [inline]
__refcount_inc include/linux/refcount.h:366 [inline]
refcount_inc include/linux/refcount.h:383 [inline]
kref_get include/linux/kref.h:45 [inline]
config_item_get+0x95/0xa0 fs/configfs/item.c:104
configfs_get_config_item fs/configfs/configfs_internal.h:128 [inline]
get_target fs/configfs/symlink.c:125 [inline]
configfs_symlink+0x455/0x1050 fs/configfs/symlink.c:191
vfs_symlink+0x3f7/0x620 fs/namei.c:4623
do_symlinkat+0x1ba/0x400 fs/namei.c:4649
__do_sys_symlinkat fs/namei.c:4665 [inline]
__se_sys_symlinkat fs/namei.c:4662 [inline]
__x64_sys_symlinkat+0x99/0xb0 fs/namei.c:4662
x64_sys_call+0x1f79/0x2ee0 arch/x86/include/generated/asm/syscalls_64.h:267
do_syscall_x64 arch/x86/entry/common.c:47 [inline]
do_syscall_64+0x57/0xf0 arch/x86/entry/common.c:78
entry_SYSCALL_64_after_hwframe+0x76/0x7e
RIP: 0033:0x7fbb053fe6b9
Code: c0 79 93 eb d5 48 8d 7c 1d 00 eb 99 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 d8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fff958d57b8 EFLAGS: 00000246 ORIG_RAX: 000000000000010a
RAX: ffffffffffffffda RBX: 0000200000000200 RCX: 00007fbb053fe6b9
RDX: 0000200000000300 RSI: 00000000ffffff9c RDI: 0000200000000200
RBP: 0000200000000300 R08: 0000000000000009 R09: 0000000000000009
R10: 0000000000000009 R11: 0000000000000246 R12: 0000000000005e1b
R13: 00007fff958d57cc R14: 00007fff958d57e0 R15: 0000200000000008
</TASK>
---[ end trace 0000000000000000 ]---
==================================================================
BUG: KASAN: slab-use-after-free in instrument_atomic_read_write include/linux/instrumented.h:96 [inline]
BUG: KASAN: slab-use-after-free in atomic_fetch_sub_release include/linux/atomic/atomic-instrumented.h:400 [inline]
BUG: KASAN: slab-use-after-free in __refcount_sub_and_test include/linux/refcount.h:389 [inline]
BUG: KASAN: slab-use-after-free in __refcount_dec_and_test include/linux/refcount.h:432 [inline]
BUG: KASAN: slab-use-after-free in refcount_dec_and_test include/linux/refcount.h:450 [inline]
BUG: KASAN: slab-use-after-free in kref_put include/linux/kref.h:64 [inline]
BUG: KASAN: slab-use-after-free in config_item_put+0x37/0x240 fs/configfs/item.c:149
Write of size 4 at addr ffff88810d3b7c24 by task syz-executor170/513
CPU: 0 UID: 0 PID: 513 Comm: syz-executor170 Tainted: G W syzkaller #0 200dea8a17c83f35b0a1e1238c384757fc17b797
Tainted: [W]=WARN
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/24/2026
Call Trace:
<TASK>
__dump_stack+0x21/0x30 lib/dump_stack.c:94
dump_stack_lvl+0x140/0x1c0 lib/dump_stack.c:120
print_address_description+0x71/0x210 mm/kasan/report.c:377
print_report+0x4a/0x70 mm/kasan/report.c:481
kasan_report+0x162/0x1a0 mm/kasan/report.c:594
check_region_inline mm/kasan/generic.c:-1 [inline]
kasan_check_range+0x25a/0x2b0 mm/kasan/generic.c:189
__kasan_check_write+0x18/0x20 mm/kasan/shadow.c:37
instrument_atomic_read_write include/linux/instrumented.h:96 [inline]
atomic_fetch_sub_release include/linux/atomic/atomic-instrumented.h:400 [inline]
__refcount_sub_and_test include/linux/refcount.h:389 [inline]
__refcount_dec_and_test include/linux/refcount.h:432 [inline]
refcount_dec_and_test include/linux/refcount.h:450 [inline]
kref_put include/linux/kref.h:64 [inline]
config_item_put+0x37/0x240 fs/configfs/item.c:149
configfs_symlink+0x4b5/0x1050 fs/configfs/symlink.c:212
vfs_symlink+0x3f7/0x620 fs/namei.c:4623
do_symlinkat+0x1ba/0x400 fs/namei.c:4649
__do_sys_symlinkat fs/namei.c:4665 [inline]
__se_sys_symlinkat fs/namei.c:4662 [inline]
__x64_sys_symlinkat+0x99/0xb0 fs/namei.c:4662
x64_sys_call+0x1f79/0x2ee0 arch/x86/include/generated/asm/syscalls_64.h:267
do_syscall_x64 arch/x86/entry/common.c:47 [inline]
do_syscall_64+0x57/0xf0 arch/x86/entry/common.c:78
entry_SYSCALL_64_after_hwframe+0x76/0x7e
RIP: 0033:0x7fbb053fe6b9
Code: c0 79 93 eb d5 48 8d 7c 1d 00 eb 99 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 d8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fff958d57b8 EFLAGS: 00000246 ORIG_RAX: 000000000000010a
RAX: ffffffffffffffda RBX: 0000200000000200 RCX: 00007fbb053fe6b9
RDX: 0000200000000300 RSI: 00000000ffffff9c RDI: 0000200000000200
RBP: 0000200000000300 R08: 0000000000000009 R09: 0000000000000009
R10: 0000000000000009 R11: 0000000000000246 R12: 0000000000005e1b
R13: 00007fff958d57cc R14: 00007fff958d57e0 R15: 0000200000000008
</TASK>
Allocated by task 513:
kasan_save_stack mm/kasan/common.c:49 [inline]
kasan_save_track+0x3e/0x80 mm/kasan/common.c:70
kasan_save_alloc_info+0x3a/0x50 mm/kasan/generic.c:565
poison_kmalloc_redzone mm/kasan/common.c:379 [inline]
__kasan_kmalloc+0x96/0xb0 mm/kasan/common.c:396
kasan_kmalloc include/linux/kasan.h:261 [inline]
__kmalloc_cache_noprof+0x23c/0x470 mm/slub.c:4426
kmalloc_noprof include/linux/slab.h:881 [inline]
kzalloc_noprof include/linux/slab.h:1017 [inline]
fsg_alloc_inst+0xe0/0x7f0 drivers/usb/gadget/function/f_mass_storage.c:3500
try_get_usb_function_instance drivers/usb/gadget/functions.c:28 [inline]
usb_get_function_instance+0xf7/0x320 drivers/usb/gadget/functions.c:44
function_make+0x125/0x370 drivers/usb/gadget/configfs.c:631
configfs_mkdir+0x523/0xb70 fs/configfs/dir.c:1339
vfs_mkdir+0x58e/0x810 fs/namei.c:4265
do_mkdirat+0x240/0x530 fs/namei.c:4288
__do_sys_mkdirat fs/namei.c:4303 [inline]
__se_sys_mkdirat fs/namei.c:4301 [inline]
__x64_sys_mkdirat+0x8b/0xa0 fs/namei.c:4301
x64_sys_call+0x2ba8/0x2ee0 arch/x86/include/generated/asm/syscalls_64.h:259
do_syscall_x64 arch/x86/entry/common.c:47 [inline]
do_syscall_64+0x57/0xf0 arch/x86/entry/common.c:78
entry_SYSCALL_64_after_hwframe+0x76/0x7e
Freed by task 512:
kasan_save_stack mm/kasan/common.c:49 [inline]
kasan_save_track+0x3e/0x80 mm/kasan/common.c:70
kasan_save_free_info+0x44/0x50 mm/kasan/generic.c:579
poison_slab_object mm/kasan/common.c:249 [inline]
__kasan_slab_free+0x5f/0x80 mm/kasan/common.c:266
kasan_slab_free include/linux/kasan.h:234 [inline]
slab_free_hook mm/slub.c:2445 [inline]
slab_free mm/slub.c:4714 [inline]
kfree+0x158/0x440 mm/slub.c:4875
fsg_free_inst+0x340/0x430 drivers/usb/gadget/function/f_mass_storage.c:3491
usb_put_function_instance+0xa2/0xc0 drivers/usb/gadget/functions.c:77
fsg_attr_release+0x19/0x30 drivers/usb/gadget/function/f_mass_storage.c:3377
config_item_cleanup fs/configfs/item.c:128 [inline]
config_item_release fs/configfs/item.c:137 [inline]
kref_put include/linux/kref.h:65 [inline]
config_item_put+0x178/0x240 fs/configfs/item.c:149
configfs_rmdir+0x8e8/0x9b0 fs/configfs/dir.c:1550
vfs_rmdir+0x3de/0x560 fs/namei.c:4348
do_rmdir+0x29a/0x590 fs/namei.c:4407
__do_sys_rmdir fs/namei.c:4426 [inline]
__se_sys_rmdir fs/namei.c:4424 [inline]
__x64_sys_rmdir+0x4b/0x60 fs/namei.c:4424
x64_sys_call+0xaf7/0x2ee0 arch/x86/include/generated/asm/syscalls_64.h:85
do_syscall_x64 arch/x86/entry/common.c:47 [inline]
do_syscall_64+0x57/0xf0 arch/x86/entry/common.c:78
entry_SYSCALL_64_after_hwframe+0x76/0x7e
The buggy address belongs to the object at ffff88810d3b7c00
which belongs to the cache kmalloc-512 of size 512
The buggy address is located 36 bytes inside of
freed 512-byte region [ffff88810d3b7c00, ffff88810d3b7e00)
The buggy address belongs to the physical page:
page: refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x10d3b4
head: order:2 mapcount:0 entire_mapcount:0 nr_pages_mapped:0 pincount:0
anon flags: 0x4000000000000040(head|zone=1)
page_type: f5(slab)
raw: 4000000000000040 ffff888100041c80 0000000000000000 dead000000000001
raw: 0000000000000000 0000000080100010 00000001f5000000 0000000000000000
head: 4000000000000040 ffff888100041c80 0000000000000000 dead000000000001
head: 0000000000000000 0000000080100010 00000001f5000000 0000000000000000
head: 4000000000000002 ffffea000434ed01 ffffffffffffffff 0000000000000000
head: 0000000000000004 0000000000000000 00000000ffffffff 0000000000000000
page dumped because: kasan: bad access detected
page_owner tracks the page as allocated
page last allocated via order 2, migratetype Unmovable, gfp_mask 0xd20c0(__GFP_IO|__GFP_FS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOMEMALLOC), pid 99, tgid 99 (klogd), ts 4495063755, free_ts 0
set_page_owner include/linux/page_owner.h:35 [inline]
post_alloc_hook+0x37d/0x3b0 mm/page_alloc.c:1863
prep_new_page+0x2d/0x180 mm/page_alloc.c:1871
get_page_from_freelist+0x4aea/0x4ba0 mm/page_alloc.c:3948
__alloc_pages_noprof+0x35a/0x7e0 mm/page_alloc.c:5315
alloc_slab_page+0x6b/0x1e0 mm/slub.c:-1
allocate_slab+0x69/0x430 mm/slub.c:2687
new_slab mm/slub.c:2741 [inline]
___slab_alloc+0x591/0x8c0 mm/slub.c:3934
__slab_alloc mm/slub.c:4025 [inline]
__slab_alloc_node mm/slub.c:4078 [inline]
slab_alloc_node mm/slub.c:4239 [inline]
__do_kmalloc_node mm/slub.c:4394 [inline]
__kmalloc_node_track_caller_noprof+0x2e3/0x4f0 mm/slub.c:4414
kmalloc_reserve+0x144/0x4f0 net/core/skbuff.c:618
__alloc_skb+0x13f/0x360 net/core/skbuff.c:687
alloc_skb include/linux/skbuff.h:1363 [inline]
alloc_skb_with_frags+0xd0/0x8b0 net/core/skbuff.c:6617
sock_alloc_send_pskb+0x883/0x9a0 net/core/sock.c:2923
unix_dgram_sendmsg+0x63a/0x1a90 net/unix/af_unix.c:2040
sock_sendmsg_nosec net/socket.c:730 [inline]
__sock_sendmsg net/socket.c:745 [inline]
__sys_sendto+0x68d/0x700 net/socket.c:2216
__do_sys_sendto net/socket.c:2228 [inline]
__se_sys_sendto net/socket.c:2224 [inline]
__x64_sys_sendto+0xe9/0x100 net/socket.c:2224
x64_sys_call+0x2c2c/0x2ee0 arch/x86/include/generated/asm/syscalls_64.h:45
page_owner free stack trace missing
Memory state around the buggy address:
ffff88810d3b7b00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
ffff88810d3b7b80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>ffff88810d3b7c00: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
^
ffff88810d3b7c80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
ffff88810d3b7d00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
==================================================================
------------[ cut here ]------------
refcount_t: underflow; use-after-free.
WARNING: CPU: 0 PID: 513 at lib/refcount.c:28 refcount_warn_saturate+0x119/0x1c0 lib/refcount.c:28
Modules linked in:
CPU: 0 UID: 0 PID: 513 Comm: syz-executor170 Tainted: G B W syzkaller #0 200dea8a17c83f35b0a1e1238c384757fc17b797
Tainted: [B]=BAD_PAGE, [W]=WARN
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/24/2026
RIP: 0010:refcount_warn_saturate+0x119/0x1c0 lib/refcount.c:28
Code: 05 01 48 c7 c7 c0 eb 51 86 e8 d3 79 55 fe 0f 0b eb da e8 9a a1 d8 fe c6 05 98 74 36 05 01 48 c7 c7 20 ec 51 86 e8 b7 79 55 fe <0f> 0b eb be e8 7e a1 d8 fe c6 05 79 74 36 05 01 48 c7 c7 60 eb 51
RSP: 0018:ffffc9000176fc18 EFLAGS: 00010246
RAX: 651fefe182003800 RBX: 0000000000000003 RCX: ffff8881308dcc00
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000002
RBP: ffffc9000176fc28 R08: ffffc9000176f907 R09: 1ffff920002edf20
R10: dffffc0000000000 R11: fffff520002edf21 R12: 00000000ffffffea
R13: dffffc0000000000 R14: ffff88810d3b7c24 R15: 00000000c0000000
FS: 0000555591db23c0(0000) GS:ffff8881f6e00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fbb0546587c CR3: 000000010d336000 CR4: 00000000003526b0
Call Trace:
<TASK>
__refcount_sub_and_test include/linux/refcount.h:400 [inline]
__refcount_dec_and_test include/linux/refcount.h:432 [inline]
refcount_dec_and_test include/linux/refcount.h:450 [inline]
kref_put include/linux/kref.h:64 [inline]
config_item_put+0x230/0x240 fs/configfs/item.c:149
configfs_symlink+0x4b5/0x1050 fs/configfs/symlink.c:212
vfs_symlink+0x3f7/0x620 fs/namei.c:4623
do_symlinkat+0x1ba/0x400 fs/namei.c:4649
__do_sys_symlinkat fs/namei.c:4665 [inline]
__se_sys_symlinkat fs/namei.c:4662 [inline]
__x64_sys_symlinkat+0x99/0xb0 fs/namei.c:4662
x64_sys_call+0x1f79/0x2ee0 arch/x86/include/generated/asm/syscalls_64.h:267
do_syscall_x64 arch/x86/entry/common.c:47 [inline]
do_syscall_64+0x57/0xf0 arch/x86/entry/common.c:78
entry_SYSCALL_64_after_hwframe+0x76/0x7e
RIP: 0033:0x7fbb053fe6b9
Code: c0 79 93 eb d5 48 8d 7c 1d 00 eb 99 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 d8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fff958d57b8 EFLAGS: 00000246 ORIG_RAX: 000000000000010a
RAX: ffffffffffffffda RBX: 0000200000000200 RCX: 00007fbb053fe6b9
RDX: 0000200000000300 RSI: 00000000ffffff9c RDI: 0000200000000200
RBP: 0000200000000300 R08: 0000000000000009 R09: 0000000000000009
R10: 0000000000000009 R11: 0000000000000246 R12: 0000000000005e1b
R13: 00007fff958d57cc R14: 00007fff958d57e0 R15: 0000200000000008
</TASK>
---[ end trace 0000000000000000 ]---
* Struck through repros no longer work on HEAD.