syzbot


KASAN: use-after-free Read in rhashtable_last_table

Status: auto-closed as invalid on 2021/09/15 21:37
Reported-by: syzbot+ec140277e7d1f6188dd4@syzkaller.appspotmail.com
First crash: 1357d, last: 1282d
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 2132d 2244d 0/28 closed as invalid on 2019/04/19 22:15
android-49 KASAN: use-after-free Read in rhashtable_last_table 2 1827d 1909d 0/3 auto-closed as invalid on 2020/03/20 18:26
upstream KASAN: use-after-free Read in rhashtable_last_table (2) net 1 2009d 2009d 12/28 fixed on 2019/08/05 13:45
linux-4.19 KASAN: use-after-free Read in rhashtable_last_table (2) 1 1077d 1077d 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 844d 844d 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 1316d 1316d 0/1 auto-closed as invalid on 2021/08/13 13:57

Sample crash report:
IPv6: ADDRCONF(NETDEV_CHANGE): team_slave_0: link becomes ready
IPv6: ADDRCONF(NETDEV_CHANGE): team_slave_1: link becomes ready
IPv6: ADDRCONF(NETDEV_UP): veth0_to_hsr: link is not ready
==================================================================
IPv6: ADDRCONF(NETDEV_CHANGE): team0: link becomes ready
BUG: KASAN: use-after-free in __read_once_size include/linux/compiler.h:261 [inline]
BUG: KASAN: use-after-free in rhashtable_last_table+0x167/0x180 lib/rhashtable.c:217
IPv6: ADDRCONF(NETDEV_CHANGE): veth0_to_hsr: link becomes ready
Read of size 8 at addr ffff888099ab4940 by task kworker/0:1/14

CPU: 0 PID: 14 Comm: kworker/0:1 Not tainted 4.19.190-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Workqueue: events rht_deferred_worker
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0x1fc/0x2ef lib/dump_stack.c:118
 print_address_description.cold+0x54/0x219 mm/kasan/report.c:256
 kasan_report_error.cold+0x8a/0x1b9 mm/kasan/report.c:354
IPv6: ADDRCONF(NETDEV_CHANGE): hsr_slave_0: link becomes ready
 kasan_report mm/kasan/report.c:412 [inline]
 __asan_report_load8_noabort+0x88/0x90 mm/kasan/report.c:433
IPv6: ADDRCONF(NETDEV_UP): veth1_to_hsr: link is not ready
IPv6: ADDRCONF(NETDEV_CHANGE): veth1_to_hsr: link becomes ready
 __read_once_size include/linux/compiler.h:261 [inline]
 rhashtable_last_table+0x167/0x180 lib/rhashtable.c:217
 rht_deferred_worker+0xa7/0x1b20 lib/rhashtable.c:410
 process_one_work+0x864/0x1570 kernel/workqueue.c:2152
IPv6: ADDRCONF(NETDEV_CHANGE): hsr_slave_1: link becomes ready
IPv6: ADDRCONF(NETDEV_UP): hsr0: link is not ready
 worker_thread+0x64c/0x1130 kernel/workqueue.c:2295
IPv6: ADDRCONF(NETDEV_CHANGE): hsr0: link becomes ready
 kthread+0x33f/0x460 kernel/kthread.c:259
 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:415

IPv6: ADDRCONF(NETDEV_UP): vxcan0: link is not ready
Allocated by task 14:
 __do_kmalloc_node mm/slab.c:3689 [inline]
 __kmalloc_node+0x4c/0x70 mm/slab.c:3696
 kmalloc_node include/linux/slab.h:557 [inline]
 kvmalloc_node+0x61/0xf0 mm/util.c:423
 kvmalloc include/linux/mm.h:577 [inline]
 kvzalloc include/linux/mm.h:585 [inline]
 bucket_table_alloc+0x3a/0x440 lib/rhashtable.c:176
 rhashtable_rehash_alloc+0x6b/0x120 lib/rhashtable.c:353
 rhashtable_shrink lib/rhashtable.c:397 [inline]
 rht_deferred_worker+0x152e/0x1b20 lib/rhashtable.c:415
IPv6: ADDRCONF(NETDEV_UP): vxcan1: link is not ready
 process_one_work+0x864/0x1570 kernel/workqueue.c:2152
IPv6: ADDRCONF(NETDEV_CHANGE): vxcan1: link becomes ready
 worker_thread+0x64c/0x1130 kernel/workqueue.c:2295
 kthread+0x33f/0x460 kernel/kthread.c:259
 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:415

Freed by task 20984:
 __cache_free mm/slab.c:3503 [inline]
 kfree+0xcc/0x210 mm/slab.c:3822
 kvfree+0x59/0x60 mm/util.c:452
 rhashtable_free_and_destroy+0x15e/0x970 lib/rhashtable.c:1167
IPv6: ADDRCONF(NETDEV_CHANGE): vxcan0: link becomes ready
 ops_exit_list+0xa5/0x150 net/core/net_namespace.c:153
 cleanup_net+0x3b4/0x8b0 net/core/net_namespace.c:553
 process_one_work+0x864/0x1570 kernel/workqueue.c:2152
 worker_thread+0x64c/0x1130 kernel/workqueue.c:2295
 kthread+0x33f/0x460 kernel/kthread.c:259
8021q: adding VLAN 0 to HW filter on device batadv0
 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:415

The buggy address belongs to the object at ffff888099ab4900
 which belongs to the cache kmalloc-1024 of size 1024
The buggy address is located 64 bytes inside of
 1024-byte region [ffff888099ab4900, ffff888099ab4d00)
The buggy address belongs to the page:
page:ffffea000266ad00 count:1 mapcount:0 mapping:ffff88813bff0ac0 index:0x0 compound_mapcount: 0
flags: 0xfff00000008100(slab|head)
raw: 00fff00000008100 ffffea0002aee308 ffffea0002cd1e08 ffff88813bff0ac0
IPv6: ADDRCONF(NETDEV_UP): veth0_virt_wifi: link is not ready
raw: 0000000000000000 ffff888099ab4000 0000000100000007 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff888099ab4800: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
 ffff888099ab4880: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>ffff888099ab4900: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
IPv6: ADDRCONF(NETDEV_UP): veth1_virt_wifi: link is not ready
                                           ^
IPv6: ADDRCONF(NETDEV_CHANGE): veth1_virt_wifi: link becomes ready
 ffff888099ab4980: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
IPv6: ADDRCONF(NETDEV_CHANGE): veth0_virt_wifi: link becomes ready
 ffff888099ab4a00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
IPv6: ADDRCONF(NETDEV_UP): veth0_vlan: link is not ready
==================================================================
IPv6: ADDRCONF(NETDEV_UP): vlan0: link is not ready

Crashes (2):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2021/05/18 21:36 linux-4.19.y 3c8c23092588 a343ba6b .config console log report info ci2-linux-4-19 KASAN: use-after-free Read in rhashtable_last_table
2021/03/05 19:00 linux-4.19.y dfb571610ba3 4a024a9b .config console log report info ci2-linux-4-19 KASAN: use-after-free Read in rhashtable_last_table
* Struck through repros no longer work on HEAD.