syzbot


KASAN: use-after-free Read in fib6_purge_rt

Status: closed as invalid on 2019/04/02 19:13
Subsystems: net
[Documentation on labels]
First crash: 1910d, last: 1860d
Similar bugs (1)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KASAN: use-after-free Read in fib6_purge_rt (2) net 1 1775d 1774d 0/26 auto-closed as invalid on 2019/10/25 08:52

Sample crash report:
device bridge_slave_1 left promiscuous mode
bridge0: port 2(bridge_slave_1) entered disabled state
device bridge_slave_0 left promiscuous mode
bridge0: port 1(bridge_slave_0) entered disabled state
==================================================================
BUG: KASAN: use-after-free in fib6_drop_pcpu_from net/ipv6/ip6_fib.c:924 [inline]
BUG: KASAN: use-after-free in fib6_purge_rt+0x62a/0x670 net/ipv6/ip6_fib.c:960
Read of size 8 at addr ffff88809960d5d6 by task kworker/u4:3/2403

CPU: 1 PID: 2403 Comm: kworker/u4:3 Not tainted 5.0.0-rc8+ #108
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Workqueue: netns cleanup_net
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0x172/0x1f0 lib/dump_stack.c:113
 print_address_description.cold+0x7c/0x20d mm/kasan/report.c:187
 kasan_report.cold+0x1b/0x40 mm/kasan/report.c:317
 __asan_report_load8_noabort+0x14/0x20 mm/kasan/generic_report.c:135
 fib6_drop_pcpu_from net/ipv6/ip6_fib.c:924 [inline]
 fib6_purge_rt+0x62a/0x670 net/ipv6/ip6_fib.c:960
 fib6_del_route net/ipv6/ip6_fib.c:1813 [inline]
 fib6_del+0xac2/0x10a0 net/ipv6/ip6_fib.c:1844
 fib6_clean_node+0x3a8/0x590 net/ipv6/ip6_fib.c:2006
 fib6_walk_continue+0x4b3/0x8e0 net/ipv6/ip6_fib.c:1928
 fib6_walk+0x9d/0x100 net/ipv6/ip6_fib.c:1976
 fib6_clean_tree+0xe0/0x120 net/ipv6/ip6_fib.c:2055
 __fib6_clean_all+0x118/0x2a0 net/ipv6/ip6_fib.c:2071
 fib6_clean_all+0x2b/0x40 net/ipv6/ip6_fib.c:2082
 rt6_sync_down_dev+0x134/0x150 net/ipv6/route.c:4057
 rt6_disable_ip+0x27/0x5f0 net/ipv6/route.c:4062
 addrconf_ifdown+0xa2/0x1220 net/ipv6/addrconf.c:3670
 addrconf_notify+0x5e1/0x2280 net/ipv6/addrconf.c:3595
 notifier_call_chain+0xc7/0x240 kernel/notifier.c:93
 __raw_notifier_call_chain kernel/notifier.c:394 [inline]
 raw_notifier_call_chain+0x2e/0x40 kernel/notifier.c:401
 call_netdevice_notifiers_info+0x3f/0x90 net/core/dev.c:1739
 call_netdevice_notifiers_extack net/core/dev.c:1751 [inline]
 call_netdevice_notifiers net/core/dev.c:1765 [inline]
 dev_close_many+0x33f/0x6f0 net/core/dev.c:1508
 rollback_registered_many+0x43b/0xfd0 net/core/dev.c:8079
 unregister_netdevice_many.part.0+0x1b/0x1f0 net/core/dev.c:9210
 unregister_netdevice_many net/core/dev.c:9209 [inline]
 default_device_exit_batch+0x350/0x410 net/core/dev.c:9679
 ops_exit_list.isra.0+0x105/0x160 net/core/net_namespace.c:156
 cleanup_net+0x3fb/0x960 net/core/net_namespace.c:551
 process_one_work+0x98e/0x1790 kernel/workqueue.c:2173
 worker_thread+0x98/0xe40 kernel/workqueue.c:2319
 kthread+0x357/0x430 kernel/kthread.c:246
 ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352

Allocated by task 30847:
 save_stack+0x45/0xd0 mm/kasan/common.c:73
 set_track mm/kasan/common.c:85 [inline]
 __kasan_kmalloc mm/kasan/common.c:495 [inline]
 __kasan_kmalloc.constprop.0+0xcf/0xe0 mm/kasan/common.c:468
 kasan_slab_alloc+0xf/0x20 mm/kasan/common.c:503
 slab_post_alloc_hook mm/slab.h:440 [inline]
 slab_alloc mm/slab.c:3388 [inline]
 kmem_cache_alloc+0x11a/0x6f0 mm/slab.c:3548
 dst_alloc+0x10e/0x1d0 net/core/dst.c:105
 ip6_dst_alloc+0x34/0xa0 net/ipv6/route.c:355
 icmp6_dst_alloc+0x1a9/0x660 net/ipv6/route.c:2664
 mld_sendpack+0x625/0xed0 net/ipv6/mcast.c:1672
 mld_send_initial_cr.part.0+0x114/0x160 net/ipv6/mcast.c:2100
 mld_send_initial_cr net/ipv6/mcast.c:2084 [inline]
 mld_dad_timer_expire+0x42/0x1c0 net/ipv6/mcast.c:2119
 call_timer_fn+0x190/0x720 kernel/time/timer.c:1325
 expire_timers kernel/time/timer.c:1362 [inline]
 __run_timers kernel/time/timer.c:1681 [inline]
 __run_timers kernel/time/timer.c:1649 [inline]
 run_timer_softirq+0x652/0x1700 kernel/time/timer.c:1694
 __do_softirq+0x266/0x95a kernel/softirq.c:292

Freed by task 30832:
 save_stack+0x45/0xd0 mm/kasan/common.c:73
 set_track mm/kasan/common.c:85 [inline]
 __kasan_slab_free+0x102/0x150 mm/kasan/common.c:457
 kasan_slab_free+0xe/0x10 mm/kasan/common.c:465
 __cache_free mm/slab.c:3494 [inline]
 kmem_cache_free+0x86/0x260 mm/slab.c:3754
 dst_destroy+0x2a0/0x3c0 net/core/dst.c:141
 dst_destroy_rcu+0x16/0x19 net/core/dst.c:154
 __rcu_reclaim kernel/rcu/rcu.h:240 [inline]
 rcu_do_batch kernel/rcu/tree.c:2452 [inline]
 invoke_rcu_callbacks kernel/rcu/tree.c:2773 [inline]
 rcu_process_callbacks+0x928/0x1390 kernel/rcu/tree.c:2754
 __do_softirq+0x266/0x95a kernel/softirq.c:292

The buggy address belongs to the object at ffff88809960d500
 which belongs to the cache ip6_dst_cache of size 224
The buggy address is located 214 bytes inside of
 224-byte region [ffff88809960d500, ffff88809960d5e0)
The buggy address belongs to the page:
page:ffffea0002658340 count:1 mapcount:0 mapping:ffff88809b346cc0 index:0xffff88809960db40
flags: 0x1fffc0000000200(slab)
raw: 01fffc0000000200 ffffea00024603c8 ffffea000225c708 ffff88809b346cc0
raw: ffff88809960db40 ffff88809960d000 000000010000000a 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff88809960d480: 00 00 00 00 fc fc fc fc fc fc fc fc fc fc fc fc
 ffff88809960d500: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
>ffff88809960d580: fb fb fb fb fb fb fb fb fb fb fb fb fc fc fc fc
                                                 ^
 ffff88809960d600: fc fc fc fc fc fc fc fc 00 00 00 00 00 00 00 00
 ffff88809960d680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
==================================================================

Crashes (3):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2019/03/04 19:05 net-old 822e44b45eb9 7c693b52 .config console log report ci-upstream-net-this-kasan-gce
2019/01/25 16:11 net-old 6eea3527e68a b5d78bce .config console log report ci-upstream-net-this-kasan-gce
2019/03/17 07:48 net-next-old 3b319ee220a8 bab43553 .config console log report ci-upstream-net-kasan-gce
* Struck through repros no longer work on HEAD.