================================================================== BUG: KASAN: use-after-free in l3mdev_master_ifindex_rcu+0x132/0x150 net/l3mdev/l3mdev.c:24 Read of size 4 at addr ffff88809030a21c by task kworker/1:10/2696 CPU: 1 PID: 2696 Comm: kworker/1:10 Not tainted 5.6.0-rc1-next-20200214-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: events linkwatch_event Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x197/0x210 lib/dump_stack.c:118 print_address_description.constprop.0.cold+0xd4/0x30b mm/kasan/report.c:374 __kasan_report.cold+0x1b/0x32 mm/kasan/report.c:506 kasan_report+0x12/0x20 mm/kasan/common.c:641 __asan_report_load4_noabort+0x14/0x20 mm/kasan/generic_report.c:134 l3mdev_master_ifindex_rcu+0x132/0x150 net/l3mdev/l3mdev.c:24 ipv6_dev_get_saddr+0x7b8/0xc50 net/ipv6/addrconf.c:1817 ip6_route_get_saddr include/net/ip6_route.h:144 [inline] ip6_dst_lookup_tail+0x1218/0x1f20 net/ipv6/ip6_output.c:1030 ip6_dst_lookup_flow+0x8c/0x1d0 net/ipv6/ip6_output.c:1153 geneve_get_v6_dst+0x3e1/0x880 drivers/net/geneve.c:856 geneve6_xmit_skb drivers/net/geneve.c:950 [inline] geneve_xmit+0x2b4/0x30f0 drivers/net/geneve.c:1001 __netdev_start_xmit include/linux/netdevice.h:4510 [inline] netdev_start_xmit include/linux/netdevice.h:4524 [inline] xmit_one net/core/dev.c:3470 [inline] dev_hard_start_xmit+0x1a3/0x9b0 net/core/dev.c:3486 __dev_queue_xmit+0x2ad3/0x35c0 net/core/dev.c:4063 dev_queue_xmit+0x18/0x20 net/core/dev.c:4096 neigh_hh_output include/net/neighbour.h:499 [inline] neigh_output include/net/neighbour.h:508 [inline] ip6_finish_output2+0xfbe/0x25c0 net/ipv6/ip6_output.c:116 __ip6_finish_output+0x444/0xaa0 net/ipv6/ip6_output.c:142 ip6_finish_output+0x38/0x1f0 net/ipv6/ip6_output.c:152 NF_HOOK_COND include/linux/netfilter.h:296 [inline] ip6_output+0x25e/0x880 net/ipv6/ip6_output.c:175 dst_output include/net/dst.h:436 [inline] NF_HOOK include/linux/netfilter.h:307 [inline] NF_HOOK include/linux/netfilter.h:301 [inline] mld_sendpack+0x9c2/0xed0 net/ipv6/mcast.c:1682 mld_send_cr net/ipv6/mcast.c:1978 [inline] mld_ifc_timer_expire+0x454/0x950 net/ipv6/mcast.c:2477 call_timer_fn+0x1ac/0x780 kernel/time/timer.c:1405 expire_timers kernel/time/timer.c:1450 [inline] __run_timers kernel/time/timer.c:1774 [inline] __run_timers kernel/time/timer.c:1741 [inline] run_timer_softirq+0x6c3/0x1790 kernel/time/timer.c:1787 __do_softirq+0x262/0x98c kernel/softirq.c:292 invoke_softirq kernel/softirq.c:373 [inline] irq_exit+0x19b/0x1e0 kernel/softirq.c:413 exiting_irq arch/x86/include/asm/apic.h:546 [inline] smp_apic_timer_interrupt+0x1a3/0x610 arch/x86/kernel/apic/apic.c:1146 apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:829 RIP: 0010:arch_local_irq_restore arch/x86/include/asm/paravirt.h:752 [inline] RIP: 0010:console_unlock+0xbb9/0xf10 kernel/printk/printk.c:2478 Code: b3 89 48 c1 e8 03 42 80 3c 30 00 0f 85 2f 03 00 00 48 83 3d 20 2e 55 08 00 0f 84 89 01 00 00 e8 6d 65 17 00 48 8b 7d 98 57 9d <0f> 1f 44 00 00 eb 8a e8 5b 65 17 00 48 8b 7d 08 c7 05 7d 3b 2a 0a RSP: 0018:ffffc9000817f790 EFLAGS: 00000293 ORIG_RAX: ffffffffffffff13 RAX: ffff8880a04444c0 RBX: 0000000000000200 RCX: 0000000000000006 RDX: 0000000000000000 RSI: ffffffff815e9823 RDI: 0000000000000293 RBP: ffffc9000817f818 R08: 1ffffffff16a3f88 R09: fffffbfff16a3f89 R10: fffffbfff16a3f88 R11: ffffffff8b51fc47 R12: 0000000000000000 R13: ffffffff84c07b90 R14: dffffc0000000000 R15: ffffffff8a359ef0 vprintk_emit+0x2a0/0x700 kernel/printk/printk.c:1993 vprintk_default+0x28/0x30 kernel/printk/printk.c:2020 vprintk_func+0x7e/0x189 kernel/printk/printk_safe.c:386 printk+0xba/0xed kernel/printk/printk.c:2053 addrconf_notify.cold+0x2c/0x76 net/ipv6/addrconf.c:3573 notifier_call_chain+0xc2/0x230 kernel/notifier.c:83 __raw_notifier_call_chain kernel/notifier.c:361 [inline] raw_notifier_call_chain+0x2e/0x40 kernel/notifier.c:368 call_netdevice_notifiers_info net/core/dev.c:1943 [inline] call_netdevice_notifiers_info+0xba/0x130 net/core/dev.c:1928 netdev_state_change net/core/dev.c:1378 [inline] netdev_state_change+0x10d/0x140 net/core/dev.c:1371 linkwatch_do_dev+0x14e/0x190 net/core/link_watch.c:159 __linkwatch_run_queue+0x203/0x690 net/core/link_watch.c:204 linkwatch_event+0x4e/0x70 net/core/link_watch.c:243 process_one_work+0xa05/0x17a0 kernel/workqueue.c:2266 worker_thread+0x98/0xe40 kernel/workqueue.c:2412 kthread+0x361/0x430 kernel/kthread.c:255 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352 Allocated by task 9774: save_stack+0x23/0x90 mm/kasan/common.c:72 set_track mm/kasan/common.c:80 [inline] __kasan_kmalloc mm/kasan/common.c:515 [inline] __kasan_kmalloc.constprop.0+0xcf/0xe0 mm/kasan/common.c:488 kasan_kmalloc+0x9/0x10 mm/kasan/common.c:529 __do_kmalloc_node mm/slab.c:3616 [inline] __kmalloc_node+0x4e/0x70 mm/slab.c:3623 kmalloc_node include/linux/slab.h:578 [inline] kvmalloc_node+0x68/0x100 mm/util.c:574 kvmalloc include/linux/mm.h:645 [inline] kvzalloc include/linux/mm.h:653 [inline] alloc_netdev_mqs+0x98/0xe40 net/core/dev.c:9797 vti6_init_net+0x244/0x810 net/ipv6/ip6_vti.c:1137 ops_init+0xb3/0x420 net/core/net_namespace.c:137 setup_net+0x2d5/0x8b0 net/core/net_namespace.c:327 copy_net_ns+0x29e/0x5a0 net/core/net_namespace.c:468 create_new_namespaces+0x403/0xb50 kernel/nsproxy.c:108 unshare_nsproxy_namespaces+0xc2/0x200 kernel/nsproxy.c:229 ksys_unshare+0x444/0x980 kernel/fork.c:2956 __do_sys_unshare kernel/fork.c:3024 [inline] __se_sys_unshare kernel/fork.c:3022 [inline] __x64_sys_unshare+0x31/0x40 kernel/fork.c:3022 do_syscall_64+0xfa/0x790 arch/x86/entry/common.c:294 entry_SYSCALL_64_after_hwframe+0x49/0xbe Freed by task 9816: save_stack+0x23/0x90 mm/kasan/common.c:72 set_track mm/kasan/common.c:80 [inline] kasan_set_free_info mm/kasan/common.c:337 [inline] __kasan_slab_free+0x102/0x150 mm/kasan/common.c:476 kasan_slab_free+0xe/0x10 mm/kasan/common.c:485 __cache_free mm/slab.c:3426 [inline] kfree+0x10a/0x2c0 mm/slab.c:3757 __netdev_name_node_alt_destroy+0x1ff/0x2a0 net/core/dev.c:322 netdev_name_node_alt_destroy+0x57/0x80 net/core/dev.c:334 rtnl_alt_ifname net/core/rtnetlink.c:3518 [inline] rtnl_linkprop.isra.0+0x575/0x6f0 net/core/rtnetlink.c:3567 rtnl_dellinkprop+0x46/0x60 net/core/rtnetlink.c:3588 rtnetlink_rcv_msg+0x45e/0xaf0 net/core/rtnetlink.c:5438 netlink_rcv_skb+0x177/0x450 net/netlink/af_netlink.c:2477 rtnetlink_rcv+0x1d/0x30 net/core/rtnetlink.c:5456 netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline] netlink_unicast+0x59e/0x7e0 net/netlink/af_netlink.c:1328 netlink_sendmsg+0x91c/0xea0 net/netlink/af_netlink.c:1917 sock_sendmsg_nosec net/socket.c:652 [inline] sock_sendmsg+0xd7/0x130 net/socket.c:672 ____sys_sendmsg+0x753/0x880 net/socket.c:2343 ___sys_sendmsg+0x100/0x170 net/socket.c:2397 __sys_sendmsg+0x105/0x1d0 net/socket.c:2430 __do_sys_sendmsg net/socket.c:2439 [inline] __se_sys_sendmsg net/socket.c:2437 [inline] __x64_sys_sendmsg+0x78/0xb0 net/socket.c:2437 do_syscall_64+0xfa/0x790 arch/x86/entry/common.c:294 entry_SYSCALL_64_after_hwframe+0x49/0xbe The buggy address belongs to the object at ffff88809030a000 which belongs to the cache kmalloc-4k of size 4096 The buggy address is located 540 bytes inside of 4096-byte region [ffff88809030a000, ffff88809030b000) The buggy address belongs to the page: page:ffffea000240c280 refcount:1 mapcount:0 mapping:ffff8880aa402000 index:0x0 compound_mapcount: 0 flags: 0xfffe0000010200(slab|head) raw: 00fffe0000010200 ffffea0002611088 ffffea0002600188 ffff8880aa402000 raw: 0000000000000000 ffff88809030a000 0000000100000001 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff88809030a100: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff88809030a180: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff88809030a200: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ ffff88809030a280: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff88809030a300: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ==================================================================