linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [syzbot] [mm?] [bcachefs?] KASAN: slab-use-after-free Read in list_lru_del
@ 2025-02-06 17:01 syzbot
  2025-03-07 22:42 ` syzbot
  2025-11-28 21:46 ` [syzbot] [mm?] " syzbot
  0 siblings, 2 replies; 4+ messages in thread
From: syzbot @ 2025-02-06 17:01 UTC (permalink / raw)
  To: akpm, kent.overstreet, linux-bcachefs, linux-kernel, linux-mm,
	syzkaller-bugs

Hello,

syzbot found the following issue on:

HEAD commit:    92514ef226f5 Merge tag 'for-6.14-rc1-tag' of git://git.ker..
git tree:       upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=126aa4a4580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=1909f2f0d8e641ce
dashboard link: https://syzkaller.appspot.com/bug?extid=6663075ddb9be85fa6e5
compiler:       Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=14926df8580000

Downloadable assets:
disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/7feb34a89c2a/non_bootable_disk-92514ef2.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/c4d8b91f8769/vmlinux-92514ef2.xz
kernel image: https://storage.googleapis.com/syzbot-assets/c24ec4365966/bzImage-92514ef2.xz
mounted in repro: https://storage.googleapis.com/syzbot-assets/efb05b29bf18/mount_0.gz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+6663075ddb9be85fa6e5@syzkaller.appspotmail.com

 slab radix_tree_node start ffff8880411d9600 pointer offset 24 size 576
list_del corruption. next->prev should be ffff88803f847358, but was 0000000008000105. (next=ffff8880411d9618)
------------[ cut here ]------------
kernel BUG at lib/list_debug.c:67!
Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN NOPTI
CPU: 0 UID: 0 PID: 5628 Comm: modprobe Not tainted 6.14.0-rc1-syzkaller-00034-g92514ef226f5 #0
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
RIP: 0010:__list_del_entry_valid_or_report+0x18c/0x190 lib/list_debug.c:65
Code: ba 56 15 fd 42 80 3c 2b 00 74 08 4c 89 e7 e8 7b 02 37 fd 49 8b 56 08 48 c7 c7 20 8f 60 8c 4c 89 fe 4c 89 f1 e8 65 10 38 fc 90 <0f> 0b 66 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f
RSP: 0018:ffffc9000cdced10 EFLAGS: 00010046
RAX: 000000000000006d RBX: 1ffff1100823b2c4 RCX: a96f20814868f300
RDX: 0000000000000000 RSI: 0000000080000002 RDI: 0000000000000000
RBP: ffff888032fbde80 R08: ffffffff819f146c R09: fffffbfff1cfa588
R10: dffffc0000000000 R11: fffffbfff1cfa588 R12: ffff8880411d9620
R13: dffffc0000000000 R14: ffff8880411d9618 R15: ffff88803f847358
FS:  0000000000000000(0000) GS:ffff88801fc00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ff0ee1cb270 CR3: 0000000000712000 CR4: 0000000000352ef0
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_init include/linux/list.h:287 [inline]
 list_lru_del+0x9a/0x1f0 mm/list_lru.c:206
 list_lru_del_obj+0x17b/0x250 mm/list_lru.c:223
 workingset_update_node+0x174/0x230 mm/workingset.c:636
 xas_update lib/xarray.c:356 [inline]
 update_node lib/xarray.c:764 [inline]
 xas_store+0xb89/0x1870 lib/xarray.c:851
 __filemap_add_folio+0xab1/0x1320 mm/filemap.c:925
 filemap_add_folio+0x155/0x380 mm/filemap.c:981
 __filemap_get_folio+0x52b/0xae0 mm/filemap.c:1980
 grow_dev_folio fs/buffer.c:1039 [inline]
 grow_buffers fs/buffer.c:1105 [inline]
 __getblk_slow fs/buffer.c:1131 [inline]
 bdev_getblk+0x1d4/0x670 fs/buffer.c:1431
 getblk_unmovable include/linux/buffer_head.h:369 [inline]
 ext4_getblk+0x31b/0x880 fs/ext4/inode.c:864
 ext4_bread_batch+0x63/0x4e0 fs/ext4/inode.c:933
 __ext4_find_entry+0xfab/0x1eb0 fs/ext4/namei.c:1627
 ext4_lookup_entry fs/ext4/namei.c:1729 [inline]
 ext4_lookup+0x15f/0x750 fs/ext4/namei.c:1797
 __lookup_slow+0x296/0x400 fs/namei.c:1793
 lookup_slow+0x53/0x70 fs/namei.c:1810
 walk_component fs/namei.c:2114 [inline]
 link_path_walk+0x99b/0xea0 fs/namei.c:2479
 path_openat+0x266/0x3590 fs/namei.c:3985
 do_filp_open+0x27f/0x4e0 fs/namei.c:4016
 do_sys_openat2+0x13e/0x1d0 fs/open.c:1427
 do_sys_open fs/open.c:1442 [inline]
 __do_sys_openat fs/open.c:1458 [inline]
 __se_sys_openat fs/open.c:1453 [inline]
 __x64_sys_openat+0x247/0x2a0 fs/open.c:1453
 do_syscall_x64 arch/x86/entry/common.c:52 [inline]
 do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7ff0ee472a46
Code: 10 00 00 00 44 8b 54 24 e0 48 89 44 24 c0 48 8d 44 24 d0 48 89 44 24 c8 44 89 c2 4c 89 ce bf 9c ff ff ff b8 01 01 00 00 0f 05 <48> 3d 00 f0 ff ff 76 0c f7 d8 89 05 0a 48 01 00 48 83 c8 ff c3 31
RSP: 002b:00007ffdd50a1c28 EFLAGS: 00000287 ORIG_RAX: 0000000000000101
RAX: ffffffffffffffda RBX: 00007ffdd50a1e88 RCX: 00007ff0ee472a46
RDX: 0000000000080000 RSI: 00007ffdd50a1ca0 RDI: 00000000ffffff9c
RBP: 00007ffdd50a1c90 R08: 0000000000080000 R09: 00007ffdd50a1ca0
R10: 0000000000000000 R11: 0000000000000287 R12: 00007ffdd50a1ca0
R13: 0000000000000000 R14: 00007ffdd50a1e6f R15: 00000000ffffffff
 </TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:__list_del_entry_valid_or_report+0x18c/0x190 lib/list_debug.c:65
Code: ba 56 15 fd 42 80 3c 2b 00 74 08 4c 89 e7 e8 7b 02 37 fd 49 8b 56 08 48 c7 c7 20 8f 60 8c 4c 89 fe 4c 89 f1 e8 65 10 38 fc 90 <0f> 0b 66 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f
RSP: 0018:ffffc9000cdced10 EFLAGS: 00010046
RAX: 000000000000006d RBX: 1ffff1100823b2c4 RCX: a96f20814868f300
RDX: 0000000000000000 RSI: 0000000080000002 RDI: 0000000000000000
RBP: ffff888032fbde80 R08: ffffffff819f146c R09: fffffbfff1cfa588
R10: dffffc0000000000 R11: fffffbfff1cfa588 R12: ffff8880411d9620
R13: dffffc0000000000 R14: ffff8880411d9618 R15: ffff88803f847358
FS:  0000000000000000(0000) GS:ffff88801fc00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ff0ee1cb270 CR3: 0000000000712000 CR4: 0000000000352ef0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400


---
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 syzkaller@googlegroups.com.

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


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [syzbot] [mm?] [bcachefs?] KASAN: slab-use-after-free Read in list_lru_del
  2025-02-06 17:01 [syzbot] [mm?] [bcachefs?] KASAN: slab-use-after-free Read in list_lru_del syzbot
@ 2025-03-07 22:42 ` syzbot
  2025-11-28 21:46 ` [syzbot] [mm?] " syzbot
  1 sibling, 0 replies; 4+ messages in thread
From: syzbot @ 2025-03-07 22:42 UTC (permalink / raw)
  To: akpm, hughd, kent.overstreet, linux-bcachefs, linux-kernel,
	linux-mm, syzkaller-bugs

syzbot has bisected this issue to:

commit 14152654805256d760315ec24e414363bfa19a06
Author: Kent Overstreet <kent.overstreet@linux.dev>
Date:   Mon Nov 25 05:21:27 2024 +0000

    bcachefs: Bad btree roots are now autofix

bisection log:  https://syzkaller.appspot.com/x/bisect.txt?x=108d43a8580000
start commit:   03d38806a902 Merge tag 'thermal-6.14-rc5' of git://git.ker..
git tree:       upstream
final oops:     https://syzkaller.appspot.com/x/report.txt?x=128d43a8580000
console output: https://syzkaller.appspot.com/x/log.txt?x=148d43a8580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=8de9cc84d5960254
dashboard link: https://syzkaller.appspot.com/bug?extid=6663075ddb9be85fa6e5
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=104d2864580000

Reported-by: syzbot+6663075ddb9be85fa6e5@syzkaller.appspotmail.com
Fixes: 141526548052 ("bcachefs: Bad btree roots are now autofix")

For information about bisection process see: https://goo.gl/tpsmEJ#bisection


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [syzbot] [mm?] KASAN: slab-use-after-free Read in list_lru_del
  2025-02-06 17:01 [syzbot] [mm?] [bcachefs?] KASAN: slab-use-after-free Read in list_lru_del syzbot
  2025-03-07 22:42 ` syzbot
@ 2025-11-28 21:46 ` syzbot
  2025-11-29 18:34   ` Andrew Morton
  1 sibling, 1 reply; 4+ messages in thread
From: syzbot @ 2025-11-28 21:46 UTC (permalink / raw)
  To: akpm, david, hughd, kent.overstreet, linux-bcachefs,
	linux-kernel, linux-mm, muchun.song, roman.gushchin,
	syzkaller-bugs, zhengqi.arch

syzbot has found a reproducer for the following issue on:

HEAD commit:    e538109ac71d Merge tag 'drm-fixes-2025-11-28' of https://g..
git tree:       upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=10fd2112580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=a1db0fea040c2a9f
dashboard link: https://syzkaller.appspot.com/bug?extid=6663075ddb9be85fa6e5
compiler:       Debian clang version 20.1.8 (++20250708063551+0c9f909b7976-1~exp1~20250708183702.136), Debian LLD 20.1.8
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=12fd2112580000
C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=15a10112580000

Downloadable assets:
disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-e538109a.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/3cf595fe0afc/vmlinux-e538109a.xz
kernel image: https://storage.googleapis.com/syzbot-assets/e6e26f95e409/bzImage-e538109a.xz
mounted in repro: https://storage.googleapis.com/syzbot-assets/445f48d13fdb/mount_7.gz
  fsck result: failed (log: https://syzkaller.appspot.com/x/fsck.log?x=11a10112580000)

The issue was bisected to:

commit 14152654805256d760315ec24e414363bfa19a06
Author: Kent Overstreet <kent.overstreet@linux.dev>
Date:   Mon Nov 25 05:21:27 2024 +0000

    bcachefs: Bad btree roots are now autofix

bisection log:  https://syzkaller.appspot.com/x/bisect.txt?x=108d43a8580000
final oops:     https://syzkaller.appspot.com/x/report.txt?x=128d43a8580000
console output: https://syzkaller.appspot.com/x/log.txt?x=148d43a8580000

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+6663075ddb9be85fa6e5@syzkaller.appspotmail.com
Fixes: 141526548052 ("bcachefs: Bad btree roots are now autofix")

==================================================================
BUG: KASAN: slab-use-after-free in __list_del_entry_valid_or_report+0xb5/0x190 lib/list_debug.c:65
Read of size 8 at addr ffff88800098a080 by task syz.0.17/5483

CPU: 0 UID: 0 PID: 5483 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
Call Trace:
 <TASK>
 dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120
 print_address_description mm/kasan/report.c:378 [inline]
 print_report+0xca/0x240 mm/kasan/report.c:482
 kasan_report+0x118/0x150 mm/kasan/report.c:595
 __list_del_entry_valid_or_report+0xb5/0x190 lib/list_debug.c:65
 __list_del_entry_valid include/linux/list.h:132 [inline]
 __list_del_entry include/linux/list.h:223 [inline]
 list_del_init include/linux/list.h:295 [inline]
 list_lru_del+0x98/0x210 mm/list_lru.c:210
 gfs2_quota_cleanup+0x21e/0x6f0 fs/gfs2/quota.c:1532
 gfs2_make_fs_ro+0x27a/0x300 fs/gfs2/super.c:566
 gfs2_put_super+0x224/0x950 fs/gfs2/super.c:598
 generic_shutdown_super+0x135/0x2c0 fs/super.c:642
 kill_block_super+0x44/0x90 fs/super.c:1729
 deactivate_locked_super+0xbc/0x130 fs/super.c:473
 cleanup_mnt+0x425/0x4c0 fs/namespace.c:1318
 task_work_run+0x1d4/0x260 kernel/task_work.c:227
 exit_task_work include/linux/task_work.h:40 [inline]
 do_exit+0x6b5/0x2300 kernel/exit.c:966
 do_group_exit+0x21c/0x2d0 kernel/exit.c:1107
 __do_sys_exit_group kernel/exit.c:1118 [inline]
 __se_sys_exit_group kernel/exit.c:1116 [inline]
 __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1116
 x64_sys_call+0x21f7/0x2200 arch/x86/include/generated/asm/syscalls_64.h:232
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xfa/0xfa0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f4bb3d8f7c9
Code: Unable to access opcode bytes at 0x7f4bb3d8f79f.
RSP: 002b:00007ffd56395328 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7
RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f4bb3d8f7c9
RDX: 0000000000000064 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000000003 R08: 0000001d5639541f R09: 00007f4bb3fb4280
R10: 0000000000000001 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f4bb3fb4280 R14: 0000000000000003 R15: 00007ffd563953e0
 </TASK>

Allocated by task 5483:
 kasan_save_stack mm/kasan/common.c:56 [inline]
 kasan_save_track+0x3e/0x80 mm/kasan/common.c:77
 unpoison_slab_object mm/kasan/common.c:342 [inline]
 __kasan_slab_alloc+0x6c/0x80 mm/kasan/common.c:368
 kasan_slab_alloc include/linux/kasan.h:252 [inline]
 slab_post_alloc_hook mm/slub.c:4978 [inline]
 slab_alloc_node mm/slub.c:5288 [inline]
 kmem_cache_alloc_noprof+0x367/0x6e0 mm/slub.c:5295
 qd_alloc+0x50/0x250 fs/gfs2/quota.c:234
 gfs2_quota_init+0x762/0x1200 fs/gfs2/quota.c:1448
 gfs2_make_fs_rw+0x181/0x2b0 fs/gfs2/super.c:149
 gfs2_fill_super+0x1a7b/0x20d0 fs/gfs2/ops_fstype.c:1280
 get_tree_bdev_flags+0x40e/0x4d0 fs/super.c:1698
 gfs2_get_tree+0x51/0x1e0 fs/gfs2/ops_fstype.c:1337
 vfs_get_tree+0x92/0x2b0 fs/super.c:1758
 fc_mount fs/namespace.c:1199 [inline]
 do_new_mount_fc fs/namespace.c:3642 [inline]
 do_new_mount+0x302/0xa10 fs/namespace.c:3718
 do_mount fs/namespace.c:4041 [inline]
 __do_sys_mount fs/namespace.c:4229 [inline]
 __se_sys_mount+0x313/0x410 fs/namespace.c:4206
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xfa/0xfa0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

Freed by task 15:
 kasan_save_stack mm/kasan/common.c:56 [inline]
 kasan_save_track+0x3e/0x80 mm/kasan/common.c:77
 __kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:587
 kasan_save_free_info mm/kasan/kasan.h:406 [inline]
 poison_slab_object mm/kasan/common.c:252 [inline]
 __kasan_slab_free+0x5c/0x80 mm/kasan/common.c:284
 kasan_slab_free include/linux/kasan.h:234 [inline]
 slab_free_hook mm/slub.c:2543 [inline]
 slab_free mm/slub.c:6642 [inline]
 kmem_cache_free+0x19b/0x690 mm/slub.c:6752
 gfs2_qd_dealloc+0x70/0xe0 fs/gfs2/quota.c:111
 rcu_do_batch kernel/rcu/tree.c:2605 [inline]
 rcu_core+0xcab/0x1770 kernel/rcu/tree.c:2861
 handle_softirqs+0x286/0x870 kernel/softirq.c:622
 run_ksoftirqd+0x9b/0x100 kernel/softirq.c:1063
 smpboot_thread_fn+0x542/0xa60 kernel/smpboot.c:160
 kthread+0x711/0x8a0 kernel/kthread.c:463
 ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

Last potentially related work creation:
 kasan_save_stack+0x3e/0x60 mm/kasan/common.c:56
 kasan_record_aux_stack+0xbd/0xd0 mm/kasan/generic.c:559
 __call_rcu_common kernel/rcu/tree.c:3123 [inline]
 call_rcu+0x157/0x9c0 kernel/rcu/tree.c:3243
 gfs2_quota_sync+0x3c4/0x460 fs/gfs2/quota.c:1361
 gfs2_sync_fs+0x4c/0xb0 fs/gfs2/super.c:658
 sync_filesystem+0xee/0x230 fs/sync.c:56
 generic_shutdown_super+0x6f/0x2c0 fs/super.c:621
 kill_block_super+0x44/0x90 fs/super.c:1729
 deactivate_locked_super+0xbc/0x130 fs/super.c:473
 cleanup_mnt+0x425/0x4c0 fs/namespace.c:1318
 task_work_run+0x1d4/0x260 kernel/task_work.c:227
 exit_task_work include/linux/task_work.h:40 [inline]
 do_exit+0x6b5/0x2300 kernel/exit.c:966
 do_group_exit+0x21c/0x2d0 kernel/exit.c:1107
 __do_sys_exit_group kernel/exit.c:1118 [inline]
 __se_sys_exit_group kernel/exit.c:1116 [inline]
 __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1116
 x64_sys_call+0x21f7/0x2200 arch/x86/include/generated/asm/syscalls_64.h:232
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xfa/0xfa0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

The buggy address belongs to the object at ffff88800098a000
 which belongs to the cache gfs2_quotad of size 272
The buggy address is located 128 bytes inside of
 freed 272-byte region [ffff88800098a000, ffff88800098a110)

The buggy address belongs to the physical page:
page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x98a
flags: 0x7ff00000000000(node=0|zone=0|lastcpupid=0x7ff)
page_type: f5(slab)
raw: 007ff00000000000 ffff888032687dc0 dead000000000122 0000000000000000
raw: 0000000000000000 00000000800c000c 00000000f5000000 0000000000000000
page dumped because: kasan: bad access detected
page_owner tracks the page as allocated
page last allocated via order 0, migratetype Reclaimable, gfp_mask 0x52c50(GFP_NOFS|__GFP_RECLAIMABLE|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP), pid 5483, tgid 5483 (syz.0.17), ts 105510017652, free_ts 102275632308
 set_page_owner include/linux/page_owner.h:32 [inline]
 post_alloc_hook+0x234/0x290 mm/page_alloc.c:1845
 prep_new_page mm/page_alloc.c:1853 [inline]
 get_page_from_freelist+0x2365/0x2440 mm/page_alloc.c:3879
 __alloc_frozen_pages_noprof+0x181/0x370 mm/page_alloc.c:5178
 alloc_pages_mpol+0x232/0x4a0 mm/mempolicy.c:2416
 alloc_slab_page mm/slub.c:3059 [inline]
 allocate_slab+0x96/0x350 mm/slub.c:3232
 new_slab mm/slub.c:3286 [inline]
 ___slab_alloc+0xf56/0x1990 mm/slub.c:4655
 __slab_alloc+0x65/0x100 mm/slub.c:4778
 __slab_alloc_node mm/slub.c:4854 [inline]
 slab_alloc_node mm/slub.c:5276 [inline]
 kmem_cache_alloc_noprof+0x3f9/0x6e0 mm/slub.c:5295
 qd_alloc+0x50/0x250 fs/gfs2/quota.c:234
 gfs2_quota_init+0x762/0x1200 fs/gfs2/quota.c:1448
 gfs2_make_fs_rw+0x181/0x2b0 fs/gfs2/super.c:149
 gfs2_fill_super+0x1a7b/0x20d0 fs/gfs2/ops_fstype.c:1280
 get_tree_bdev_flags+0x40e/0x4d0 fs/super.c:1698
 gfs2_get_tree+0x51/0x1e0 fs/gfs2/ops_fstype.c:1337
 vfs_get_tree+0x92/0x2b0 fs/super.c:1758
 fc_mount fs/namespace.c:1199 [inline]
 do_new_mount_fc fs/namespace.c:3642 [inline]
 do_new_mount+0x302/0xa10 fs/namespace.c:3718
page last free pid 5433 tgid 5433 stack trace:
 reset_page_owner include/linux/page_owner.h:25 [inline]
 free_pages_prepare mm/page_alloc.c:1394 [inline]
 free_unref_folios+0xdb3/0x14f0 mm/page_alloc.c:2958
 folios_put_refs+0x584/0x670 mm/swap.c:1002
 free_pages_and_swap_cache+0x4be/0x520 mm/swap_state.c:358
 __tlb_batch_free_encoded_pages mm/mmu_gather.c:136 [inline]
 tlb_batch_pages_flush mm/mmu_gather.c:149 [inline]
 tlb_flush_mmu_free mm/mmu_gather.c:397 [inline]
 tlb_flush_mmu+0x3a0/0x680 mm/mmu_gather.c:404
 tlb_finish_mmu+0xc3/0x1d0 mm/mmu_gather.c:497
 exit_mmap+0x444/0xb40 mm/mmap.c:1293
 __mmput+0x118/0x430 kernel/fork.c:1133
 exit_mm+0x1da/0x2c0 kernel/exit.c:582
 do_exit+0x648/0x2300 kernel/exit.c:954
 do_group_exit+0x21c/0x2d0 kernel/exit.c:1107
 __do_sys_exit_group kernel/exit.c:1118 [inline]
 __se_sys_exit_group kernel/exit.c:1116 [inline]
 __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1116
 x64_sys_call+0x21f7/0x2200 arch/x86/include/generated/asm/syscalls_64.h:232
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xfa/0xfa0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

Memory state around the buggy address:
 ffff888000989f80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 ffff88800098a000: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
>ffff88800098a080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                   ^
 ffff88800098a100: fb fb fc fc fc fc fc fc fc fc 00 00 00 00 00 00
 ffff88800098a180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
==================================================================


---
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.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [syzbot] [mm?] KASAN: slab-use-after-free Read in list_lru_del
  2025-11-28 21:46 ` [syzbot] [mm?] " syzbot
@ 2025-11-29 18:34   ` Andrew Morton
  0 siblings, 0 replies; 4+ messages in thread
From: Andrew Morton @ 2025-11-29 18:34 UTC (permalink / raw)
  To: syzbot
  Cc: david, hughd, kent.overstreet, linux-bcachefs, linux-kernel,
	linux-mm, muchun.song, roman.gushchin, syzkaller-bugs,
	zhengqi.arch, gfs2

On Fri, 28 Nov 2025 13:46:26 -0800 syzbot <syzbot+6663075ddb9be85fa6e5@syzkaller.appspotmail.com> wrote:

> syzbot has found a reproducer for the following issue on:
> 
> HEAD commit:    e538109ac71d Merge tag 'drm-fixes-2025-11-28' of https://g..
> git tree:       upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=10fd2112580000
> kernel config:  https://syzkaller.appspot.com/x/.config?x=a1db0fea040c2a9f
> dashboard link: https://syzkaller.appspot.com/bug?extid=6663075ddb9be85fa6e5
> compiler:       Debian clang version 20.1.8 (++20250708063551+0c9f909b7976-1~exp1~20250708183702.136), Debian LLD 20.1.8
> syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=12fd2112580000
> C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=15a10112580000
> 
> Downloadable assets:
> disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-e538109a.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/3cf595fe0afc/vmlinux-e538109a.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/e6e26f95e409/bzImage-e538109a.xz
> mounted in repro: https://storage.googleapis.com/syzbot-assets/445f48d13fdb/mount_7.gz
>   fsck result: failed (log: https://syzkaller.appspot.com/x/fsck.log?x=11a10112580000)
> 
> The issue was bisected to:
> 
> commit 14152654805256d760315ec24e414363bfa19a06
> Author: Kent Overstreet <kent.overstreet@linux.dev>
> Date:   Mon Nov 25 05:21:27 2024 +0000
> 
>     bcachefs: Bad btree roots are now autofix
> 
> bisection log:  https://syzkaller.appspot.com/x/bisect.txt?x=108d43a8580000
> final oops:     https://syzkaller.appspot.com/x/report.txt?x=128d43a8580000
> console output: https://syzkaller.appspot.com/x/log.txt?x=148d43a8580000

Thanks.

Bisection obviously went wrong.

I'll cc the gfs2 list.

> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+6663075ddb9be85fa6e5@syzkaller.appspotmail.com
> Fixes: 141526548052 ("bcachefs: Bad btree roots are now autofix")
> 
> ==================================================================
> BUG: KASAN: slab-use-after-free in __list_del_entry_valid_or_report+0xb5/0x190 lib/list_debug.c:65
> Read of size 8 at addr ffff88800098a080 by task syz.0.17/5483
> 
> CPU: 0 UID: 0 PID: 5483 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(full) 
> Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
> Call Trace:
>  <TASK>
>  dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120
>  print_address_description mm/kasan/report.c:378 [inline]
>  print_report+0xca/0x240 mm/kasan/report.c:482
>  kasan_report+0x118/0x150 mm/kasan/report.c:595
>  __list_del_entry_valid_or_report+0xb5/0x190 lib/list_debug.c:65
>  __list_del_entry_valid include/linux/list.h:132 [inline]
>  __list_del_entry include/linux/list.h:223 [inline]
>  list_del_init include/linux/list.h:295 [inline]
>  list_lru_del+0x98/0x210 mm/list_lru.c:210
>  gfs2_quota_cleanup+0x21e/0x6f0 fs/gfs2/quota.c:1532
>  gfs2_make_fs_ro+0x27a/0x300 fs/gfs2/super.c:566
>  gfs2_put_super+0x224/0x950 fs/gfs2/super.c:598
>  generic_shutdown_super+0x135/0x2c0 fs/super.c:642
>  kill_block_super+0x44/0x90 fs/super.c:1729
>  deactivate_locked_super+0xbc/0x130 fs/super.c:473
>  cleanup_mnt+0x425/0x4c0 fs/namespace.c:1318
>  task_work_run+0x1d4/0x260 kernel/task_work.c:227
>  exit_task_work include/linux/task_work.h:40 [inline]
>  do_exit+0x6b5/0x2300 kernel/exit.c:966
>  do_group_exit+0x21c/0x2d0 kernel/exit.c:1107
>  __do_sys_exit_group kernel/exit.c:1118 [inline]
>  __se_sys_exit_group kernel/exit.c:1116 [inline]
>  __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1116
>  x64_sys_call+0x21f7/0x2200 arch/x86/include/generated/asm/syscalls_64.h:232
>  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
>  do_syscall_64+0xfa/0xfa0 arch/x86/entry/syscall_64.c:94
>  entry_SYSCALL_64_after_hwframe+0x77/0x7f
> RIP: 0033:0x7f4bb3d8f7c9
> Code: Unable to access opcode bytes at 0x7f4bb3d8f79f.
> RSP: 002b:00007ffd56395328 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7
> RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f4bb3d8f7c9
> RDX: 0000000000000064 RSI: 0000000000000000 RDI: 0000000000000000
> RBP: 0000000000000003 R08: 0000001d5639541f R09: 00007f4bb3fb4280
> R10: 0000000000000001 R11: 0000000000000246 R12: 0000000000000000
> R13: 00007f4bb3fb4280 R14: 0000000000000003 R15: 00007ffd563953e0
>  </TASK>
> 
> Allocated by task 5483:
>  kasan_save_stack mm/kasan/common.c:56 [inline]
>  kasan_save_track+0x3e/0x80 mm/kasan/common.c:77
>  unpoison_slab_object mm/kasan/common.c:342 [inline]
>  __kasan_slab_alloc+0x6c/0x80 mm/kasan/common.c:368
>  kasan_slab_alloc include/linux/kasan.h:252 [inline]
>  slab_post_alloc_hook mm/slub.c:4978 [inline]
>  slab_alloc_node mm/slub.c:5288 [inline]
>  kmem_cache_alloc_noprof+0x367/0x6e0 mm/slub.c:5295
>  qd_alloc+0x50/0x250 fs/gfs2/quota.c:234
>  gfs2_quota_init+0x762/0x1200 fs/gfs2/quota.c:1448
>  gfs2_make_fs_rw+0x181/0x2b0 fs/gfs2/super.c:149
>  gfs2_fill_super+0x1a7b/0x20d0 fs/gfs2/ops_fstype.c:1280
>  get_tree_bdev_flags+0x40e/0x4d0 fs/super.c:1698
>  gfs2_get_tree+0x51/0x1e0 fs/gfs2/ops_fstype.c:1337
>  vfs_get_tree+0x92/0x2b0 fs/super.c:1758
>  fc_mount fs/namespace.c:1199 [inline]
>  do_new_mount_fc fs/namespace.c:3642 [inline]
>  do_new_mount+0x302/0xa10 fs/namespace.c:3718
>  do_mount fs/namespace.c:4041 [inline]
>  __do_sys_mount fs/namespace.c:4229 [inline]
>  __se_sys_mount+0x313/0x410 fs/namespace.c:4206
>  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
>  do_syscall_64+0xfa/0xfa0 arch/x86/entry/syscall_64.c:94
>  entry_SYSCALL_64_after_hwframe+0x77/0x7f
> 
> Freed by task 15:
>  kasan_save_stack mm/kasan/common.c:56 [inline]
>  kasan_save_track+0x3e/0x80 mm/kasan/common.c:77
>  __kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:587
>  kasan_save_free_info mm/kasan/kasan.h:406 [inline]
>  poison_slab_object mm/kasan/common.c:252 [inline]
>  __kasan_slab_free+0x5c/0x80 mm/kasan/common.c:284
>  kasan_slab_free include/linux/kasan.h:234 [inline]
>  slab_free_hook mm/slub.c:2543 [inline]
>  slab_free mm/slub.c:6642 [inline]
>  kmem_cache_free+0x19b/0x690 mm/slub.c:6752
>  gfs2_qd_dealloc+0x70/0xe0 fs/gfs2/quota.c:111
>  rcu_do_batch kernel/rcu/tree.c:2605 [inline]
>  rcu_core+0xcab/0x1770 kernel/rcu/tree.c:2861
>  handle_softirqs+0x286/0x870 kernel/softirq.c:622
>  run_ksoftirqd+0x9b/0x100 kernel/softirq.c:1063
>  smpboot_thread_fn+0x542/0xa60 kernel/smpboot.c:160
>  kthread+0x711/0x8a0 kernel/kthread.c:463
>  ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158
>  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
> 
> Last potentially related work creation:
>  kasan_save_stack+0x3e/0x60 mm/kasan/common.c:56
>  kasan_record_aux_stack+0xbd/0xd0 mm/kasan/generic.c:559
>  __call_rcu_common kernel/rcu/tree.c:3123 [inline]
>  call_rcu+0x157/0x9c0 kernel/rcu/tree.c:3243
>  gfs2_quota_sync+0x3c4/0x460 fs/gfs2/quota.c:1361
>  gfs2_sync_fs+0x4c/0xb0 fs/gfs2/super.c:658
>  sync_filesystem+0xee/0x230 fs/sync.c:56
>  generic_shutdown_super+0x6f/0x2c0 fs/super.c:621
>  kill_block_super+0x44/0x90 fs/super.c:1729
>  deactivate_locked_super+0xbc/0x130 fs/super.c:473
>  cleanup_mnt+0x425/0x4c0 fs/namespace.c:1318
>  task_work_run+0x1d4/0x260 kernel/task_work.c:227
>  exit_task_work include/linux/task_work.h:40 [inline]
>  do_exit+0x6b5/0x2300 kernel/exit.c:966
>  do_group_exit+0x21c/0x2d0 kernel/exit.c:1107
>  __do_sys_exit_group kernel/exit.c:1118 [inline]
>  __se_sys_exit_group kernel/exit.c:1116 [inline]
>  __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1116
>  x64_sys_call+0x21f7/0x2200 arch/x86/include/generated/asm/syscalls_64.h:232
>  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
>  do_syscall_64+0xfa/0xfa0 arch/x86/entry/syscall_64.c:94
>  entry_SYSCALL_64_after_hwframe+0x77/0x7f
> 
> The buggy address belongs to the object at ffff88800098a000
>  which belongs to the cache gfs2_quotad of size 272
> The buggy address is located 128 bytes inside of
>  freed 272-byte region [ffff88800098a000, ffff88800098a110)
> 
> The buggy address belongs to the physical page:
> page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x98a
> flags: 0x7ff00000000000(node=0|zone=0|lastcpupid=0x7ff)
> page_type: f5(slab)
> raw: 007ff00000000000 ffff888032687dc0 dead000000000122 0000000000000000
> raw: 0000000000000000 00000000800c000c 00000000f5000000 0000000000000000
> page dumped because: kasan: bad access detected
> page_owner tracks the page as allocated
> page last allocated via order 0, migratetype Reclaimable, gfp_mask 0x52c50(GFP_NOFS|__GFP_RECLAIMABLE|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP), pid 5483, tgid 5483 (syz.0.17), ts 105510017652, free_ts 102275632308
>  set_page_owner include/linux/page_owner.h:32 [inline]
>  post_alloc_hook+0x234/0x290 mm/page_alloc.c:1845
>  prep_new_page mm/page_alloc.c:1853 [inline]
>  get_page_from_freelist+0x2365/0x2440 mm/page_alloc.c:3879
>  __alloc_frozen_pages_noprof+0x181/0x370 mm/page_alloc.c:5178
>  alloc_pages_mpol+0x232/0x4a0 mm/mempolicy.c:2416
>  alloc_slab_page mm/slub.c:3059 [inline]
>  allocate_slab+0x96/0x350 mm/slub.c:3232
>  new_slab mm/slub.c:3286 [inline]
>  ___slab_alloc+0xf56/0x1990 mm/slub.c:4655
>  __slab_alloc+0x65/0x100 mm/slub.c:4778
>  __slab_alloc_node mm/slub.c:4854 [inline]
>  slab_alloc_node mm/slub.c:5276 [inline]
>  kmem_cache_alloc_noprof+0x3f9/0x6e0 mm/slub.c:5295
>  qd_alloc+0x50/0x250 fs/gfs2/quota.c:234
>  gfs2_quota_init+0x762/0x1200 fs/gfs2/quota.c:1448
>  gfs2_make_fs_rw+0x181/0x2b0 fs/gfs2/super.c:149
>  gfs2_fill_super+0x1a7b/0x20d0 fs/gfs2/ops_fstype.c:1280
>  get_tree_bdev_flags+0x40e/0x4d0 fs/super.c:1698
>  gfs2_get_tree+0x51/0x1e0 fs/gfs2/ops_fstype.c:1337
>  vfs_get_tree+0x92/0x2b0 fs/super.c:1758
>  fc_mount fs/namespace.c:1199 [inline]
>  do_new_mount_fc fs/namespace.c:3642 [inline]
>  do_new_mount+0x302/0xa10 fs/namespace.c:3718
> page last free pid 5433 tgid 5433 stack trace:
>  reset_page_owner include/linux/page_owner.h:25 [inline]
>  free_pages_prepare mm/page_alloc.c:1394 [inline]
>  free_unref_folios+0xdb3/0x14f0 mm/page_alloc.c:2958
>  folios_put_refs+0x584/0x670 mm/swap.c:1002
>  free_pages_and_swap_cache+0x4be/0x520 mm/swap_state.c:358
>  __tlb_batch_free_encoded_pages mm/mmu_gather.c:136 [inline]
>  tlb_batch_pages_flush mm/mmu_gather.c:149 [inline]
>  tlb_flush_mmu_free mm/mmu_gather.c:397 [inline]
>  tlb_flush_mmu+0x3a0/0x680 mm/mmu_gather.c:404
>  tlb_finish_mmu+0xc3/0x1d0 mm/mmu_gather.c:497
>  exit_mmap+0x444/0xb40 mm/mmap.c:1293
>  __mmput+0x118/0x430 kernel/fork.c:1133
>  exit_mm+0x1da/0x2c0 kernel/exit.c:582
>  do_exit+0x648/0x2300 kernel/exit.c:954
>  do_group_exit+0x21c/0x2d0 kernel/exit.c:1107
>  __do_sys_exit_group kernel/exit.c:1118 [inline]
>  __se_sys_exit_group kernel/exit.c:1116 [inline]
>  __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1116
>  x64_sys_call+0x21f7/0x2200 arch/x86/include/generated/asm/syscalls_64.h:232
>  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
>  do_syscall_64+0xfa/0xfa0 arch/x86/entry/syscall_64.c:94
>  entry_SYSCALL_64_after_hwframe+0x77/0x7f
> 
> Memory state around the buggy address:
>  ffff888000989f80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>  ffff88800098a000: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
> >ffff88800098a080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
>                    ^
>  ffff88800098a100: fb fb fc fc fc fc fc fc fc fc 00 00 00 00 00 00
>  ffff88800098a180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> ==================================================================
> 
> 
> ---
> 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.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-11-29 18:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-02-06 17:01 [syzbot] [mm?] [bcachefs?] KASAN: slab-use-after-free Read in list_lru_del syzbot
2025-03-07 22:42 ` syzbot
2025-11-28 21:46 ` [syzbot] [mm?] " syzbot
2025-11-29 18:34   ` Andrew Morton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox