syzbot


KASAN: use-after-free Read in __ext4_check_dir_entry (2)

Status: upstream: reported C repro on 2025/04/09 15:24
Bug presence: origin:lts
[Documentation on labels]
Reported-by: syzbot+89297222eb000a6d3be5@syzkaller.appspotmail.com
First crash: 330d, last: 11d
Bug presence (2)
Date Name Commit Repro Result
2025/04/10 lts (merge base) cf30300a216a C [report] KASAN: use-after-free Read in __ext4_check_dir_entry
2025/04/24 upstream (ToT) a79be02bba5c C Didn't crash
Similar bugs (13)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
android-5-10 KASAN: use-after-free Read in __ext4_check_dir_entry (2) 19 C 11 5h22m 410d 0/2 upstream: reported C repro on 2025/01/19 16:52
upstream KASAN: use-after-free Read in __ext4_check_dir_entry (3) ext4 19 C inconclusive done 6 363d 515d 0/29 auto-obsoleted due to no activity on 2025/06/16 07:57
linux-4.14 KASAN: use-after-free Read in __ext4_check_dir_entry 19 C inconclusive 6 1989d 2093d 0/1 upstream: reported C repro on 2020/06/12 02:23
upstream KASAN: use-after-free Read in __ext4_check_dir_entry (2) ext4 19 C error 1 650d 660d 0/29 closed as dup on 2024/06/26 08:39
linux-5.15 KASAN: use-after-free Read in __ext4_check_dir_entry origin:upstream 19 C error 10 63d 641d 0/3 upstream: reported C repro on 2024/06/03 01:15
android-5-15 KASAN: use-after-free Read in __ext4_check_dir_entry missing-backport origin:upstream 19 C error 4 492d 615d 0/2 auto-obsoleted due to no activity on 2025/02/07 07:57
linux-6.6 KASAN: use-after-free Read in __ext4_check_dir_entry origin:upstream 19 C 1 12d 12d 0/2 upstream: reported C repro on 2026/02/22 03:13
upstream KASAN: slab-use-after-free Read in __ext4_check_dir_entry ext4 19 C error 6 10d 248d 0/29 upstream: reported C repro on 2025/06/30 17:28
upstream KASAN: use-after-free Read in __ext4_check_dir_entry ext4 19 C 8 2893d 2896d 22/29 closed as dup on 2018/03/31 22:38
android-5-10 KASAN: use-after-free Read in __ext4_check_dir_entry 19 C error 2 546d 665d 0/2 auto-obsoleted due to no activity on 2024/12/26 18:56
android-6-1 KASAN: use-after-free Read in __ext4_check_dir_entry missing-backport origin:upstream 19 C error 4 539d 663d 0/2 auto-obsoleted due to no activity on 2024/12/21 14:06
linux-6.1 KASAN: use-after-free Read in __ext4_check_dir_entry 19 15 604d 641d 0/3 auto-obsoleted due to no activity on 2024/09/17 20:54
android-6-1 KASAN: use-after-free Read in __ext4_check_dir_entry (2) origin:upstream 19 C error 6 6d03h 334d 0/2 upstream: reported C repro on 2025/04/05 13:22
Last patch testing requests (9)
Created Duration User Patch Repo Result
2026/02/22 19:43 5m retest repro android13-5.15-lts report log
2026/02/22 19:43 5m retest repro android13-5.15-lts report log
2026/02/22 19:43 5m retest repro android13-5.15-lts report log
2026/02/22 19:43 16m retest repro android13-5.15-lts report log
2026/02/22 19:43 14m retest repro android13-5.15-lts OK log
2026/01/08 15:12 9m retest repro android13-5.15-lts report log
2025/12/25 14:01 6m retest repro android13-5.15-lts report log
2025/12/10 06:54 18m retest repro android13-5.15-lts report log
2025/12/10 06:54 16m retest repro android13-5.15-lts report log
Fix bisection attempts (2)
Created Duration User Patch Repo Result
2025/11/24 21:46 1h11m bisect fix android13-5.15-lts OK (0) job log log
2025/05/27 07:11 1h38m bisect fix android13-5.15-lts OK (0) job log log

Sample crash report:
ext4 filesystem being mounted at /1/file0 supports timestamps until 2038-01-19 (0x7fffffff)
EXT4-fs warning (device loop2): dx_probe:833: inode #2: comm syz.2.18: Unrecognised inode hash code 20
EXT4-fs warning (device loop2): dx_probe:966: inode #2: comm syz.2.18: Corrupt directory, running e2fsck is recommended
==================================================================
BUG: KASAN: use-after-free in __ext4_check_dir_entry+0x7c2/0x970 fs/ext4/dir.c:85
Read of size 2 at addr ffff888110827003 by task syz.2.18/376

CPU: 0 PID: 376 Comm: syz.2.18 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/24/2026
Call Trace:
 <TASK>
 __dump_stack+0x21/0x30 lib/dump_stack.c:88
 dump_stack_lvl+0x110/0x170 lib/dump_stack.c:106
 print_address_description+0x7f/0x2c0 mm/kasan/report.c:248
 __kasan_report mm/kasan/report.c:427 [inline]
 kasan_report+0xf1/0x140 mm/kasan/report.c:444
 __asan_report_load2_noabort+0x14/0x20 mm/kasan/report_generic.c:307
 __ext4_check_dir_entry+0x7c2/0x970 fs/ext4/dir.c:85
 ext4_readdir+0x123c/0x3b20 fs/ext4/dir.c:261
 iterate_dir+0x260/0x600 fs/readdir.c:-1
 __do_sys_getdents64 fs/readdir.c:369 [inline]
 __se_sys_getdents64+0xf2/0x250 fs/readdir.c:354
 __x64_sys_getdents64+0x7b/0x90 fs/readdir.c:354
 x64_sys_call+0x592/0x9a0 arch/x86/include/generated/asm/syscalls_64.h:218
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x4c/0xa0 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x66/0xd0
RIP: 0033:0x7f858e10feb9
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:00007ffeeb526e18 EFLAGS: 00000246 ORIG_RAX: 00000000000000d9
RAX: ffffffffffffffda RBX: 00007f858e38afa0 RCX: 00007f858e10feb9
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000006
RBP: 00007f858e17dc1f R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f858e38afac R14: 00007f858e38afa0 R15: 00007f858e38afa0
 </TASK>

Allocated by task 8:
 kasan_save_stack mm/kasan/common.c:38 [inline]
 kasan_set_track mm/kasan/common.c:45 [inline]
 set_alloc_info mm/kasan/common.c:433 [inline]
 __kasan_slab_alloc+0xbd/0xf0 mm/kasan/common.c:466
 kasan_slab_alloc include/linux/kasan.h:217 [inline]
 slab_post_alloc_hook+0x4f/0x2b0 mm/slab.h:550
 slab_alloc_node mm/slub.c:3245 [inline]
 slab_alloc mm/slub.c:3255 [inline]
 kmem_cache_alloc+0xf7/0x260 mm/slub.c:3260
 kmem_cache_alloc_node include/linux/slab.h:492 [inline]
 __alloc_skb+0xe0/0x740 net/core/skbuff.c:416
 alloc_skb include/linux/skbuff.h:1183 [inline]
 nlmsg_new include/net/netlink.h:953 [inline]
 __neigh_notify+0x84/0x130 net/core/neighbour.c:3379
 neigh_cleanup_and_release+0x2c/0x1a0 net/core/neighbour.c:101
 neigh_flush_dev+0x6af/0x840 net/core/neighbour.c:374
 __neigh_ifdown+0x3f/0x3a0 net/core/neighbour.c:391
 neigh_ifdown+0x1f/0x30 net/core/neighbour.c:408
 rt6_disable_ip+0x68a/0x710 net/ipv6/route.c:4914
 addrconf_ifdown+0x150/0x18d0 net/ipv6/addrconf.c:3799
 addrconf_notify+0x3bd/0xde0 net/ipv6/addrconf.c:-1
 notifier_call_chain kernel/notifier.c:83 [inline]
 raw_notifier_call_chain+0x90/0x100 kernel/notifier.c:391
 call_netdevice_notifiers_info net/core/dev.c:2057 [inline]
 call_netdevice_notifiers_extack net/core/dev.c:2069 [inline]
 call_netdevice_notifiers net/core/dev.c:2083 [inline]
 dev_close_many+0x32e/0x4d0 net/core/dev.c:1658
 unregister_netdevice_many+0x45e/0x1aa0 net/core/dev.c:11126
 default_device_exit_batch+0x35e/0x3c0 net/core/dev.c:11683
 ops_exit_list net/core/net_namespace.c:177 [inline]
 cleanup_net+0x60a/0xae0 net/core/net_namespace.c:599
 process_one_work+0x6be/0xba0 kernel/workqueue.c:2325
 worker_thread+0xa59/0x1200 kernel/workqueue.c:2472
 kthread+0x411/0x500 kernel/kthread.c:337
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:287

Freed by task 8:
 kasan_save_stack mm/kasan/common.c:38 [inline]
 kasan_set_track+0x4a/0x70 mm/kasan/common.c:45
 kasan_set_free_info+0x23/0x40 mm/kasan/generic.c:370
 ____kasan_slab_free+0x125/0x160 mm/kasan/common.c:365
 __kasan_slab_free+0x11/0x20 mm/kasan/common.c:373
 kasan_slab_free include/linux/kasan.h:193 [inline]
 slab_free_hook mm/slub.c:1728 [inline]
 slab_free_freelist_hook+0xc2/0x190 mm/slub.c:1754
 slab_free mm/slub.c:3526 [inline]
 kmem_cache_free+0x100/0x320 mm/slub.c:3544
 kfree_skbmem+0x10c/0x180 net/core/skbuff.c:-1
 __kfree_skb net/core/skbuff.c:758 [inline]
 consume_skb+0xb3/0x1f0 net/core/skbuff.c:930
 netlink_broadcast_filtered+0x113a/0x1230 net/netlink/af_netlink.c:1538
 netlink_broadcast net/netlink/af_netlink.c:1560 [inline]
 nlmsg_multicast include/net/netlink.h:1033 [inline]
 nlmsg_notify+0xed/0x1b0 net/netlink/af_netlink.c:2554
 rtnl_notify+0x9a/0xc0 net/core/rtnetlink.c:759
 __neigh_notify+0xd3/0x130 net/core/neighbour.c:3390
 neigh_cleanup_and_release+0x2c/0x1a0 net/core/neighbour.c:101
 neigh_flush_dev+0x6af/0x840 net/core/neighbour.c:374
 __neigh_ifdown+0x3f/0x3a0 net/core/neighbour.c:391
 neigh_ifdown+0x1f/0x30 net/core/neighbour.c:408
 rt6_disable_ip+0x68a/0x710 net/ipv6/route.c:4914
 addrconf_ifdown+0x150/0x18d0 net/ipv6/addrconf.c:3799
 addrconf_notify+0x3bd/0xde0 net/ipv6/addrconf.c:-1
 notifier_call_chain kernel/notifier.c:83 [inline]
 raw_notifier_call_chain+0x90/0x100 kernel/notifier.c:391
 call_netdevice_notifiers_info net/core/dev.c:2057 [inline]
 call_netdevice_notifiers_extack net/core/dev.c:2069 [inline]
 call_netdevice_notifiers net/core/dev.c:2083 [inline]
 dev_close_many+0x32e/0x4d0 net/core/dev.c:1658
 unregister_netdevice_many+0x45e/0x1aa0 net/core/dev.c:11126
 default_device_exit_batch+0x35e/0x3c0 net/core/dev.c:11683
 ops_exit_list net/core/net_namespace.c:177 [inline]
 cleanup_net+0x60a/0xae0 net/core/net_namespace.c:599
 process_one_work+0x6be/0xba0 kernel/workqueue.c:2325
 worker_thread+0xa59/0x1200 kernel/workqueue.c:2472
 kthread+0x411/0x500 kernel/kthread.c:337
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:287

The buggy address belongs to the object at ffff888110827000
 which belongs to the cache skbuff_head_cache of size 248
The buggy address is located 3 bytes inside of
 248-byte region [ffff888110827000, ffff8881108270f8)
The buggy address belongs to the page:
page:ffffea00044209c0 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x110827
flags: 0x4000000000000200(slab|zone=1)
raw: 4000000000000200 dead000000000100 dead000000000122 ffff8881081aa000
raw: 0000000000000000 00000000000c000c 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected
page_owner tracks the page as allocated
page last allocated via order 0, migratetype Unmovable, gfp_mask 0x12cc0(GFP_KERNEL|__GFP_NOWARN|__GFP_NORETRY), pid 101, ts 4898818672, free_ts 0
 set_page_owner include/linux/page_owner.h:33 [inline]
 post_alloc_hook+0x192/0x1b0 mm/page_alloc.c:2605
 prep_new_page+0x1c/0x110 mm/page_alloc.c:2611
 get_page_from_freelist+0x2d3a/0x2dc0 mm/page_alloc.c:4485
 __alloc_pages+0x1a2/0x460 mm/page_alloc.c:5808
 alloc_slab_page mm/slub.c:-1 [inline]
 allocate_slab mm/slub.c:1937 [inline]
 new_slab+0xa1/0x4d0 mm/slub.c:2000
 ___slab_alloc+0x381/0x810 mm/slub.c:3033
 __slab_alloc+0x49/0x90 mm/slub.c:3120
 slab_alloc_node mm/slub.c:3211 [inline]
 slab_alloc mm/slub.c:3255 [inline]
 kmem_cache_alloc+0x138/0x260 mm/slub.c:3260
 kmem_cache_alloc_node include/linux/slab.h:492 [inline]
 __alloc_skb+0xe0/0x740 net/core/skbuff.c:416
 alloc_skb include/linux/skbuff.h:1183 [inline]
 netlink_alloc_large_skb net/netlink/af_netlink.c:1186 [inline]
 netlink_sendmsg+0x611/0xb80 net/netlink/af_netlink.c:1897
 sock_sendmsg_nosec net/socket.c:704 [inline]
 __sock_sendmsg net/socket.c:716 [inline]
 ____sys_sendmsg+0x5b7/0x8f0 net/socket.c:2435
 ___sys_sendmsg+0x236/0x2e0 net/socket.c:2489
 __sys_sendmsg net/socket.c:2518 [inline]
 __do_sys_sendmsg net/socket.c:2527 [inline]
 __se_sys_sendmsg net/socket.c:2525 [inline]
 __x64_sys_sendmsg+0x206/0x2f0 net/socket.c:2525
 x64_sys_call+0x4b/0x9a0 arch/x86/include/generated/asm/syscalls_64.h:47
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x4c/0xa0 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x66/0xd0
page_owner free stack trace missing

Memory state around the buggy address:
 ffff888110826f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 ffff888110826f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>ffff888110827000: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                   ^
 ffff888110827080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fc
 ffff888110827100: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb
==================================================================
EXT4-fs error (device loop2): ext4_readdir:263: inode #2: block 3: comm syz.2.18: path /1/file0: bad entry in directory: directory entry overrun - offset=2047, inode=3201564672, rec_len=33040, size=2048 fake=0
EXT4-fs error (device loop2) in ext4_reserve_inode_write:5885: Corrupt filesystem
EXT4-fs error (device loop2): ext4_dirty_inode:6089: inode #2: comm syz.2.18: mark_inode_dirty error

Crashes (8):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/02/08 14:51 android13-5.15-lts b5b90d209864 4c131dc4 .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro #1 (clean fs)] [mounted in repro #2 (corrupt fs)] ci2-android-5-15 KASAN: use-after-free Read in __ext4_check_dir_entry
2026/01/29 03:33 android13-5.15-lts 7e1070528954 0adc945e .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro (clean fs)] ci2-android-5-15 KASAN: use-after-free Read in __ext4_check_dir_entry
2026/01/20 13:09 android13-5.15-lts 630deefd7859 06648d9c .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro (corrupt fs)] ci2-android-5-15 KASAN: use-after-free Read in __ext4_check_dir_entry
2025/07/16 01:21 android13-5.15-lts 6b619c45dff5 03fcfc4b .config strace log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro (corrupt fs)] ci2-android-5-15 KASAN: use-after-free Read in __ext4_check_dir_entry
2025/07/15 09:14 android13-5.15-lts eabc268e4fb2 03fcfc4b .config strace log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro (corrupt fs)] ci2-android-5-15 KASAN: use-after-free Read in __ext4_check_dir_entry
2025/04/09 16:51 android13-5.15-lts 760764029c6d 47d015b1 .config strace log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro (corrupt fs)] ci2-android-5-15 KASAN: use-after-free Read in __ext4_check_dir_entry
2025/04/09 15:23 android13-5.15-lts 760764029c6d 47d015b1 .config strace log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro (corrupt fs)] ci2-android-5-15 KASAN: use-after-free Read in __ext4_check_dir_entry
2025/06/19 11:37 android13-5.15-lts e678c93d43cc ed3e87f7 .config strace log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro (clean fs)] ci2-android-5-15 KASAN: use-after-free Read in __ext4_check_dir_entry
* Struck through repros no longer work on HEAD.