syzbot


KASAN: use-after-free Read in rhashtable_last_table

Status: auto-closed as invalid on 2020/03/20 18:26
Reported-by: syzbot+d0ec9fdaa2fe1ce726c3@syzkaller.appspotmail.com
First crash: 1691d, last: 1609d
Similar bugs (6)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KASAN: use-after-free Read in rhashtable_last_table net 4 1914d 2025d 0/26 closed as invalid on 2019/04/19 22:15
upstream KASAN: use-after-free Read in rhashtable_last_table (2) net 1 1791d 1791d 12/26 fixed on 2019/08/05 13:45
linux-4.19 KASAN: use-after-free Read in rhashtable_last_table 2 1064d 1139d 0/1 auto-closed as invalid on 2021/09/15 21:37
linux-4.19 KASAN: use-after-free Read in rhashtable_last_table (2) 1 859d 859d 0/1 auto-closed as invalid on 2022/04/09 15:34
linux-4.19 KASAN: use-after-free Read in rhashtable_last_table (3) 1 626d 626d 0/1 auto-obsoleted due to no activity on 2022/11/27 23:30
linux-4.14 KASAN: use-after-free Read in rhashtable_last_table 1 1098d 1098d 0/1 auto-closed as invalid on 2021/08/13 13:57

Sample crash report:
EXT4-fs (loop2): VFS: Can't find ext4 filesystem
EXT4-fs (loop2): VFS: Can't find ext4 filesystem
==================================================================
BUG: KASAN: use-after-free in __read_once_size include/linux/compiler.h:264 [inline]
BUG: KASAN: use-after-free in rhashtable_last_table+0x10b/0x130 lib/rhashtable.c:156
Read of size 8 at addr ffff8801d985b338 by task kworker/1:0/18

CPU: 1 PID: 18 Comm: kworker/1:0 Not tainted 4.9.202+ #0
Workqueue: events rht_deferred_worker
 ffff8801da717a50 ffffffff81b55d2b 0000000000000000 ffffea0007661600
 ffff8801d985b338 0000000000000008 ffffffff81ba97db ffff8801da717a88
 ffffffff8150c321 0000000000000000 ffff8801d985b338 ffff8801d985b338
Call Trace:
 [<0000000095d0cc8b>] __dump_stack lib/dump_stack.c:15 [inline]
 [<0000000095d0cc8b>] dump_stack+0xcb/0x130 lib/dump_stack.c:56
 [<000000007e5e575b>] print_address_description+0x6f/0x23a mm/kasan/report.c:256
 [<000000006c1f625e>] kasan_report_error mm/kasan/report.c:355 [inline]
 [<000000006c1f625e>] kasan_report mm/kasan/report.c:413 [inline]
 [<000000006c1f625e>] kasan_report.cold+0x8c/0x2ba mm/kasan/report.c:397
 [<000000009c265029>] __asan_report_load8_noabort+0x14/0x20 mm/kasan/report.c:434
 [<000000000a558855>] __read_once_size include/linux/compiler.h:264 [inline]
 [<000000000a558855>] rhashtable_last_table+0x10b/0x130 lib/rhashtable.c:156
 [<00000000063ad10b>] rht_deferred_worker+0x83/0x1a10 lib/rhashtable.c:368
 [<00000000be096295>] process_one_work+0x88b/0x1600 kernel/workqueue.c:2114
 [<00000000c23ad243>] worker_thread+0x5df/0x11d0 kernel/workqueue.c:2251
 [<00000000b53aac70>] kthread+0x278/0x310 kernel/kthread.c:211
 [<00000000278488d5>] ret_from_fork+0x5c/0x70 arch/x86/entry/entry_64.S:375

Allocated by task 2514:
 save_stack_trace+0x16/0x20 arch/x86/kernel/stacktrace.c:57
 save_stack mm/kasan/kasan.c:512 [inline]
 set_track mm/kasan/kasan.c:524 [inline]
 kasan_kmalloc.part.0+0x62/0xf0 mm/kasan/kasan.c:616
 kasan_kmalloc+0xb7/0xd0 mm/kasan/kasan.c:601
 __kmalloc+0x133/0x320 mm/slub.c:3741
 kmalloc include/linux/slab.h:495 [inline]
 kzalloc include/linux/slab.h:636 [inline]
 bucket_table_alloc+0x31e/0x400 lib/rhashtable.c:126
 rhashtable_expand lib/rhashtable.c:300 [inline]
 rht_deferred_worker+0x1e6/0x1a10 lib/rhashtable.c:371
 process_one_work+0x88b/0x1600 kernel/workqueue.c:2114
 worker_thread+0x5df/0x11d0 kernel/workqueue.c:2251
 kthread+0x278/0x310 kernel/kthread.c:211
 ret_from_fork+0x5c/0x70 arch/x86/entry/entry_64.S:375

Freed by task 2138:
 save_stack_trace+0x16/0x20 arch/x86/kernel/stacktrace.c:57
 save_stack mm/kasan/kasan.c:512 [inline]
 set_track mm/kasan/kasan.c:524 [inline]
 kasan_slab_free+0xb0/0x190 mm/kasan/kasan.c:589
 slab_free_hook mm/slub.c:1355 [inline]
 slab_free_freelist_hook mm/slub.c:1377 [inline]
 slab_free mm/slub.c:2958 [inline]
 kfree+0xfc/0x310 mm/slub.c:3878
 kvfree+0x4d/0x60 mm/util.c:356
 bucket_table_free+0x4b/0x60 lib/rhashtable.c:107
 rhashtable_free_and_destroy+0x1b3/0x630 lib/rhashtable.c:1010
 inet_frags_exit_net+0x3d/0x50 net/ipv4/inet_fragment.c:151
 ipv4_frags_exit_net+0x73/0x90 net/ipv4/ip_fragment.c:697
 ops_exit_list.isra.0+0xb0/0x160 net/core/net_namespace.c:136
 cleanup_net+0x3d6/0x8a0 net/core/net_namespace.c:474
 process_one_work+0x88b/0x1600 kernel/workqueue.c:2114
 worker_thread+0x5df/0x11d0 kernel/workqueue.c:2251
 kthread+0x278/0x310 kernel/kthread.c:211
 ret_from_fork+0x5c/0x70 arch/x86/entry/entry_64.S:375

The buggy address belongs to the object at ffff8801d985b300
 which belongs to the cache kmalloc-4096 of size 4096
The buggy address is located 56 bytes inside of
 4096-byte region [ffff8801d985b300, ffff8801d985c300)
The buggy address belongs to the page:
page:ffffea0007661600 count:1 mapcount:0 mapping:          (null) index:0x0 compound_mapcount: 0
flags: 0x4000000000010200(slab|head)
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff8801d985b200: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
 ffff8801d985b280: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>ffff8801d985b300: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                                        ^
 ffff8801d985b380: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
 ffff8801d985b400: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
==================================================================

Crashes (2):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2019/11/21 18:26 android-4.9 258971b8e1ac 8098ea0f .config console log report ci-android-49-kasan-gce-root
2019/08/31 05:05 https://android.googlesource.com/kernel/common android-4.9 76ae5009ed0a fd37b39e .config console log report ci-android-49-kasan-gce-root
* Struck through repros no longer work on HEAD.