====================================== | [ 233.227333][ T9327] ================================================================== | [ 233.227497][ T9327] BUG: KASAN: slab-use-after-free in rtnl_fill_prop_list (net/core/rtnetlink.c:1949 (discriminator 12) net/core/rtnetlink.c:1970 (discriminator 12)) | [ 233.227627][ T9327] Read of size 8 at addr ff11000008568750 by task ip/9327 | [ 233.227729][ T9327] [ 233.227777][ T9327] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 233.227778][ T9327] Call Trace: [ 233.227780][ T9327] [ 233.227781][ T9327] dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120) [ 233.227787][ T9327] print_address_description.constprop.0 (mm/kasan/report.c:378) [ 233.227791][ T9327] print_report (mm/kasan/report.c:482) [ 233.227792][ T9327] ? __virt_addr_valid (./include/linux/rcupdate.h:937 ./include/linux/mmzone.h:2281 arch/x86/mm/physaddr.c:54) [ 233.227797][ T9327] ? __virt_addr_valid (./include/linux/rcupdate.h:963 (discriminator 1) ./include/linux/mmzone.h:2291 (discriminator 1) arch/x86/mm/physaddr.c:54 (discriminator 1)) [ 233.227799][ T9327] kasan_report (mm/kasan/report.c:595) [ 233.227803][ T9327] ? rtnl_fill_prop_list (net/core/rtnetlink.c:1949 (discriminator 12) net/core/rtnetlink.c:1970 (discriminator 12)) [ 233.227805][ T9327] ? rtnl_fill_prop_list (net/core/rtnetlink.c:1949 (discriminator 12) net/core/rtnetlink.c:1970 (discriminator 12)) [ 233.227807][ T9327] rtnl_fill_prop_list (net/core/rtnetlink.c:1949 (discriminator 12) net/core/rtnetlink.c:1970 (discriminator 12)) [ 233.227809][ T9327] ? __asan_memcpy (mm/kasan/shadow.c:106 (discriminator 1)) [ 233.227812][ T9327] rtnl_fill_ifinfo.isra.0 (net/core/rtnetlink.c:2087) [ 233.227814][ T9327] ? kfree (mm/slub.c:6551 (discriminator 1)) [ 233.227817][ T9327] ? rtnl_fill_vf (./include/linux/skbuff.h:2718) [ 233.227819][ T9327] ? _raw_spin_unlock_irqrestore (./include/linux/spinlock_api_smp.h:179 (discriminator 1) kernel/locking/spinlock.c:198 (discriminator 1)) [ 233.227822][ T9327] ? ref_tracker_free (lib/ref_tracker.c:339) [ 233.227826][ T9327] ? __lock_acquire (kernel/locking/lockdep.c:5237) [ 233.227829][ T9327] ? rtnl_calcit.isra.0 (net/core/rtnetlink.c:4424 (discriminator 12)) [ 233.227830][ T9327] ? ref_tracker_alloc (lib/ref_tracker.c:283) [ 233.227832][ T9327] ? linkwatch_clean_dev (./include/linux/netdevice.h:4502 net/core/link_watch.c:271) [ 233.227834][ T9327] ? linkwatch_sync_dev (net/core/link_watch.c:293) [ 233.227836][ T9327] ? rtnl_getlink (net/core/rtnetlink.c:4264) [ 233.227837][ T9327] ? rtnetlink_rcv_msg (net/core/rtnetlink.c:7042) [ 233.227839][ T9327] ? netlink_rcv_skb (net/netlink/af_netlink.c:2553) [ 233.227842][ T9327] ? netlink_unicast (net/netlink/af_netlink.c:1319 net/netlink/af_netlink.c:1345) [ 233.227844][ T9327] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 233.227847][ T9327] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5535) [ 233.227848][ T9327] ? mark_held_locks (kernel/locking/lockdep.c:4325) [ 233.227850][ T9327] ? lockdep_hardirqs_on_prepare.part.0 (kernel/locking/lockdep.c:470 (discriminator 2) kernel/locking/lockdep.c:4411 (discriminator 2)) [ 233.227851][ T9327] ? lockdep_hardirqs_on (kernel/locking/lockdep.c:4472) [ 233.227854][ T9327] ? _raw_spin_unlock_irqrestore (./include/linux/spinlock_api_smp.h:178 (discriminator 6) kernel/locking/spinlock.c:198 (discriminator 6)) [ 233.227856][ T9327] rtnl_getlink (net/core/rtnetlink.c:4267) [ 233.227858][ T9327] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 233.227860][ T9327] ? rtnl_dump_ifinfo (net/core/rtnetlink.c:2504) [ 233.227862][ T9327] ? mark_usage (kernel/locking/lockdep.c:4674) [ 233.227863][ T9327] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5535) [ 233.227864][ T9327] ? __lock_acquire (kernel/locking/lockdep.c:5237) [ 233.227871][ T9327] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 233.227873][ T9327] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 233.227875][ T9327] ? mark_usage (kernel/locking/lockdep.c:4674) [ 233.227876][ T9327] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5535) [ 233.227877][ T9327] ? __lock_acquire (kernel/locking/lockdep.c:5237) [ 233.227880][ T9327] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5535) [ 233.227882][ T9327] ? rtnl_dump_ifinfo (net/core/rtnetlink.c:2504) [ 233.227883][ T9327] rtnetlink_rcv_msg (net/core/rtnetlink.c:7042) [ 233.227885][ T9327] ? validate_chain (kernel/locking/lockdep.c:3801 (discriminator 2) kernel/locking/lockdep.c:3821 (discriminator 2) kernel/locking/lockdep.c:3876 (discriminator 2)) [ 233.227887][ T9327] ? rtnl_link_fill (./include/net/netlink.h:1107 (discriminator 1)) [ 233.227889][ T9327] ? __lock_acquire (kernel/locking/lockdep.c:5237) [ 233.227891][ T9327] ? lock_acquire.part.0 (kernel/locking/lockdep.c:5868 (discriminator 1)) [ 233.227892][ T9327] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 233.227894][ T9327] netlink_rcv_skb (net/netlink/af_netlink.c:2553) [ 233.227896][ T9327] ? rtnl_link_fill (./include/net/netlink.h:1107 (discriminator 1)) [ 233.227898][ T9327] ? netlink_ack (./include/linux/skbuff.h:2718 ./include/net/netlink.h:1020 net/netlink/af_netlink.c:2503) [ 233.227901][ T9327] ? netlink_deliver_tap (./include/linux/rcupdate.h:310 (discriminator 2) ./include/linux/rcupdate.h:869 (discriminator 2) ./include/net/netns/generic.h:48 (discriminator 2) net/netlink/af_netlink.c:334 (discriminator 2)) [ 233.227903][ T9327] ? netlink_deliver_tap (./include/linux/rcupdate.h:310 (discriminator 2) ./include/linux/rcupdate.h:869 (discriminator 2) net/netlink/af_netlink.c:341 (discriminator 2)) [ 233.227905][ T9327] netlink_unicast (net/netlink/af_netlink.c:1319 net/netlink/af_netlink.c:1345) [ 233.227908][ T9327] ? netlink_attachskb (./arch/x86/include/asm/bitops.h:202 (discriminator 1)) [ 233.227910][ T9327] ? __lock_acquire (kernel/locking/lockdep.c:5237) [ 233.227911][ T9327] ? __lock_acquire (kernel/locking/lockdep.c:5598 (discriminator 1) kernel/locking/lockdep.c:5227 (discriminator 1)) [ 233.227913][ T9327] netlink_sendmsg (net/netlink/af_netlink.c:1897) [ 233.227915][ T9327] ? netlink_unicast (./include/net/net_namespace.h:419 (discriminator 7)) [ 233.227917][ T9327] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5535) [ 233.227919][ T9327] ? __might_fault (mm/memory.c:7324 (discriminator 5)) [ 233.227922][ T9327] ? __might_fault (mm/memory.c:7324 (discriminator 5)) [ 233.227924][ T9327] ____sys_sendmsg (net/socket.c:787 (discriminator 4) net/socket.c:802 (discriminator 4) net/socket.c:2698 (discriminator 4)) [ 233.227927][ T9327] ? copy_msghdr_from_user (net/socket.c:2635) [ 233.227929][ T9327] ? get_timestamp.constprop.0 (./include/linux/netdevice.h:5349) [ 233.227930][ T9327] ? move_addr_to_kernel (./include/linux/audit.h:354 (discriminator 1)) [ 233.227931][ T9327] ? rcu_read_lock_any_held (./include/linux/lockdep.h:249 kernel/rcu/update.c:386 kernel/rcu/update.c:380) [ 233.227935][ T9327] ? rcu_lockdep_current_cpu_online (kernel/rcu/tree.c:4040 (discriminator 3) kernel/rcu/tree.c:4032 (discriminator 3)) [ 233.227937][ T9327] ? rcu_read_lock_any_held (./include/linux/lockdep.h:249 kernel/rcu/update.c:386 kernel/rcu/update.c:380) [ 233.227939][ T9327] ? validate_chain (kernel/locking/lockdep.c:3801 (discriminator 2) kernel/locking/lockdep.c:3821 (discriminator 2) kernel/locking/lockdep.c:3876 (discriminator 2)) [ 233.227941][ T9327] ___sys_sendmsg (net/socket.c:2752) [ 233.227942][ T9327] ? copy_msghdr_from_user (net/socket.c:2603) [ 233.227945][ T9327] ? __lock_release.isra.0 (kernel/locking/lockdep.c:5535) [ 233.227948][ T9327] ? _copy_from_user (./include/linux/instrumented.h:146 ./include/linux/uaccess.h:184 lib/usercopy.c:18) [ 233.227951][ T9327] ? do_getsockname (net/socket.c:2192) [ 233.227953][ T9327] __sys_sendmsg (net/socket.c:2784) [ 233.227955][ T9327] ? __sys_sendmsg_sock (net/socket.c:2765) [ 233.227958][ T9327] ? __sys_getsockname (net/socket.c:2210) [ 233.227960][ T9327] ? rcu_is_watching (./include/linux/context_tracking.h:128 (discriminator 3) kernel/rcu/tree.c:752 (discriminator 3)) [ 233.227962][ T9327] do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) [ 233.227965][ T9327] ? trace_hardirqs_off (kernel/trace/trace_preemptirq.c:104 (discriminator 1)) [ 233.227967][ T9327] ? exc_page_fault (arch/x86/mm/fault.c:1480 (discriminator 3) arch/x86/mm/fault.c:1527 (discriminator 3)) [ 233.227969][ T9327] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) [ 233.227971][ T9327] RIP: 0033:0x7fa72f91008e [ 233.227975][ T9327] Code: 4d 89 d8 e8 94 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 c3 83 e2 39 83 fa 08 75 e7 e8 03 ff ff ff 0f 1f 00 f3 0f 1e fa All code ======== 0: 4d 89 d8 mov %r11,%r8 3: e8 94 bd 00 00 call 0xbd9c 8: 4c 8b 5d f8 mov -0x8(%rbp),%r11 c: 41 8b 93 08 03 00 00 mov 0x308(%r11),%edx 13: 59 pop %rcx 14: 5e pop %rsi 15: 48 83 f8 fc cmp $0xfffffffffffffffc,%rax 19: 74 11 je 0x2c 1b: c9 leave 1c: c3 ret 1d: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) 24: 48 8b 45 10 mov 0x10(%rbp),%rax 28: 0f 05 syscall 2a:* c9 leave <-- trapping instruction 2b: c3 ret 2c: 83 e2 39 and $0x39,%edx 2f: 83 fa 08 cmp $0x8,%edx 32: 75 e7 jne 0x1b 34: e8 03 ff ff ff call 0xffffffffffffff3c 39: 0f 1f 00 nopl (%rax) 3c: f3 0f 1e fa endbr64 Code starting with the faulting instruction =========================================== 0: c9 leave 1: c3 ret 2: 83 e2 39 and $0x39,%edx 5: 83 fa 08 cmp $0x8,%edx 8: 75 e7 jne 0xfffffffffffffff1 a: e8 03 ff ff ff call 0xffffffffffffff12 f: 0f 1f 00 nopl (%rax) 12: f3 0f 1e fa endbr64 [ 233.227976][ T9327] RSP: 002b:00007ffe99c051d0 EFLAGS: 00000202 ORIG_RAX: 000000000000002e [ 233.227980][ T9327] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fa72f91008e [ 233.227982][ T9327] RDX: 0000000000000000 RSI: 00007ffe99c05280 RDI: 0000000000000006 [ 233.227983][ T9327] RBP: 00007ffe99c051e0 R08: 0000000000000000 R09: 0000000000000000 [ 233.227984][ T9327] R10: 0000000000000000 R11: 0000000000000202 R12: 000000006a0c7d8d Finger prints: print_report:kasan_report:rtnl_fill_prop_list:rtnl_getlink:rtnetlink_rcv_msg