====================================== | [ 1562.532109][T13164] ================================================================== | [1562.532403][T13164] BUG: KASAN: slab-use-after-free in neigh_flush_dev.isra.0 (net/core/neighbour.c:380) | [ 1562.532636][T13164] Read of size 8 at addr ffff888005465810 by task ip/13164 | [ 1562.532845][T13164] [ 1562.533128][T13164] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 1562.533444][T13164] Call Trace: [ 1562.533574][T13164] [1562.533650][T13164] dump_stack_lvl (lib/dump_stack.c:123) [1562.533798][T13164] print_address_description.constprop.0 (mm/kasan/report.c:378) [1562.533973][T13164] ? neigh_flush_dev.isra.0 (net/core/neighbour.c:380) [1562.534129][T13164] print_report (mm/kasan/report.c:489) [1562.534264][T13164] ? kasan_addr_to_slab (./include/linux/mm.h:1282 mm/kasan/../slab.h:206 mm/kasan/common.c:38) [1562.534398][T13164] kasan_report (mm/kasan/report.c:603) [1562.534530][T13164] ? neigh_flush_dev.isra.0 (net/core/neighbour.c:380) [1562.534667][T13164] neigh_flush_dev.isra.0 (net/core/neighbour.c:380) [1562.534805][T13164] ? lock_acquire (kernel/locking/lockdep.c:5798) [1562.534942][T13164] __neigh_ifdown.isra.0 (net/core/neighbour.c:826 net/core/neighbour.c:426) [1562.535075][T13164] ? blocking_notifier_call_chain (kernel/notifier.c:388 kernel/notifier.c:376) [1562.535249][T13164] neigh_ifdown (net/core/neighbour.c:445) [1562.535351][T13164] fib_inetaddr_event (net/ipv4/fib_frontend.c:1431 net/ipv4/fib_frontend.c:1455) [1562.535488][T13164] notifier_call_chain (kernel/notifier.c:93 (discriminator 2)) [1562.535626][T13164] blocking_notifier_call_chain (kernel/notifier.c:389 kernel/notifier.c:376) [1562.535760][T13164] __inet_del_ifa (net/ipv4/devinet.c:488) [1562.535900][T13164] inet_rtm_deladdr (net/ipv4/devinet.c:706) [1562.536037][T13164] ? __pfx_inet_rtm_deladdr (net/ipv4/devinet.c:665) [1562.536178][T13164] rtnetlink_rcv_msg (net/core/rtnetlink.c:6721) [1562.536317][T13164] ? __pfx_rtnetlink_rcv_msg (net/core/rtnetlink.c:6615) [1562.536453][T13164] ? hlock_class (./arch/x86/include/asm/bitops.h:227 ./arch/x86/include/asm/bitops.h:239 ./include/asm-generic/bitops/instrumented-non-atomic.h:142 kernel/locking/lockdep.c:228) [1562.536588][T13164] ? mark_lock (kernel/locking/lockdep.c:4703 (discriminator 3)) [1562.536692][T13164] ? __lock_acquire (kernel/locking/lockdep.c:5202) [1562.536826][T13164] netlink_rcv_skb (net/netlink/af_netlink.c:2551) [1562.536962][T13164] ? __pfx_rtnetlink_rcv_msg (net/core/rtnetlink.c:6615) [1562.537098][T13164] ? __pfx_netlink_rcv_skb (net/netlink/af_netlink.c:2528) [1562.537236][T13164] ? netlink_deliver_tap (./include/linux/rcupdate.h:347 ./include/linux/rcupdate.h:880 net/netlink/af_netlink.c:340) [1562.537377][T13164] ? netlink_deliver_tap (./include/linux/rcupdate.h:347 ./include/linux/rcupdate.h:880 ./include/net/netns/generic.h:48 net/netlink/af_netlink.c:333) [1562.537545][T13164] netlink_unicast (net/netlink/af_netlink.c:1331 net/netlink/af_netlink.c:1357) [1562.537683][T13164] ? __pfx_netlink_unicast (net/netlink/af_netlink.c:1342) [1562.537819][T13164] ? find_held_lock (kernel/locking/lockdep.c:5315) [1562.537959][T13164] netlink_sendmsg (net/netlink/af_netlink.c:1901) [1562.538095][T13164] ? __pfx_netlink_sendmsg (net/netlink/af_netlink.c:1820) [1562.538230][T13164] ? __might_fault (mm/memory.c:6700 mm/memory.c:6693) [1562.538402][T13164] ? __import_iovec (lib/iov_iter.c:1433 lib/iov_iter.c:1449) [1562.538619][T13164] ____sys_sendmsg (net/socket.c:729 net/socket.c:744 net/socket.c:2607) [1562.538809][T13164] ? __pfx_____sys_sendmsg (net/socket.c:2553) [1562.539014][T13164] ? __pfx_copy_msghdr_from_user (net/socket.c:2533) [1562.539269][T13164] ___sys_sendmsg (net/socket.c:2663) [1562.539482][T13164] ? __pfx_stack_trace_save (kernel/stacktrace.c:114) [1562.539699][T13164] ? __pfx____sys_sendmsg (net/socket.c:2650) [1562.539916][T13164] ? __pfx_validate_chain (kernel/locking/lockdep.c:3860) [1562.540136][T13164] ? __pfx_slab_free_after_rcu_debug (mm/slub.c:4609) [1562.540400][T13164] ? kasan_save_stack (mm/kasan/common.c:49) [1562.540611][T13164] ? kasan_save_stack (mm/kasan/common.c:48) [1562.540813][T13164] ? __kasan_record_aux_stack (mm/kasan/generic.c:541) [1562.541016][T13164] ? __call_rcu_common.constprop.0 (./arch/x86/include/asm/irqflags.h:26 ./arch/x86/include/asm/irqflags.h:87 ./arch/x86/include/asm/irqflags.h:123 kernel/rcu/tree.c:3087) [1562.541266][T13164] ? __x64_sys_close (fs/open.c:1568 fs/open.c:1550 fs/open.c:1550) [1562.541465][T13164] ? do_syscall_64 (arch/x86/entry/common.c:52 arch/x86/entry/common.c:83) [1562.541670][T13164] ? entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) [1562.541920][T13164] ? __lock_acquire (kernel/locking/lockdep.c:5202) [1562.542133][T13164] ? find_held_lock (kernel/locking/lockdep.c:5315) [1562.542335][T13164] ? __lock_release (kernel/locking/lockdep.c:5501) [1562.542545][T13164] ? fdget (./include/linux/atomic/atomic-arch-fallback.h:479 ./include/linux/atomic/atomic-instrumented.h:50 fs/file.c:1114 fs/file.c:1128) [1562.542703][T13164] __sys_sendmsg (./include/linux/file.h:35 net/socket.c:2692) [1562.542904][T13164] ? __pfx___sys_sendmsg (net/socket.c:2678) [1562.543102][T13164] ? __virt_addr_valid (./include/linux/rcupdate.h:347 ./include/linux/rcupdate.h:962 ./include/linux/mmzone.h:2053 arch/x86/mm/physaddr.c:65) [1562.543314][T13164] do_syscall_64 (arch/x86/entry/common.c:52 arch/x86/entry/common.c:83) [1562.543521][T13164] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) [ 1562.543776][T13164] RIP: 0033:0x7f57537207b7 [ 1562.543991][T13164] Code: 0a 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b9 0f 1f 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 51 c3 48 83 ec 28 89 54 24 1c 48 89 74 24 10 All code ======== 0: 0a 00 or (%rax),%al 2: f7 d8 neg %eax 4: 64 89 02 mov %eax,%fs:(%rdx) 7: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax e: eb b9 jmp 0xffffffffffffffc9 10: 0f 1f 00 nopl (%rax) 13: f3 0f 1e fa endbr64 17: 64 8b 04 25 18 00 00 mov %fs:0x18,%eax 1e: 00 1f: 85 c0 test %eax,%eax 21: 75 10 jne 0x33 23: b8 2e 00 00 00 mov $0x2e,%eax 28: 0f 05 syscall 2a:* 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax <-- trapping instruction 30: 77 51 ja 0x83 32: c3 ret 33: 48 83 ec 28 sub $0x28,%rsp 37: 89 54 24 1c mov %edx,0x1c(%rsp) 3b: 48 89 74 24 10 mov %rsi,0x10(%rsp) Code starting with the faulting instruction =========================================== 0: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax 6: 77 51 ja 0x59 8: c3 ret 9: 48 83 ec 28 sub $0x28,%rsp d: 89 54 24 1c mov %edx,0x1c(%rsp) 11: 48 89 74 24 10 mov %rsi,0x10(%rsp) [ 1562.544710][T13164] RSP: 002b:00007ffc3b622af8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e [ 1562.545014][T13164] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f57537207b7 [ 1562.545324][T13164] RDX: 0000000000000000 RSI: 00007ffc3b622b60 RDI: 0000000000000005 [ 1562.545627][T13164] RBP: 0000000000000000 R08: 0000000000000003 R09: 0000000000000078 [ 1562.545927][T13164] R10: 00007f57535deef8 R11: 0000000000000246 R12: 00007ffc3b6232b0 [ 1562.546233][T13164] R13: 000000006716766e R14: 0000000000496600 R15: 00007ffc3b6232b8 | [ 1562.558319][T13164] Disabling lock debugging due to kernel taint | [ 1562.558526][T13164] Oops: general protection fault, probably for non-canonical address 0xe092bc3bc00004a0: 0000 [#1] PREEMPT SMP KASAN NOPTI | [ 1562.558852][T13164] KASAN: maybe wild-memory-access in range [0x049601de00002500-0x049601de00002507] | [ 1562.559332][T13164] Tainted: [B]=BAD_PAGE [ 1562.559442][T13164] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [1562.559741][T13164] RIP: 0010:neigh_flush_dev.isra.0 (./include/linux/list.h:988 ./include/linux/rculist.h:516 net/core/neighbour.c:384) [ 1562.559912][T13164] Code: 0f 85 ef 04 00 00 49 8d 7f 08 49 8b 1f 48 89 f8 48 c1 e8 03 42 80 3c 28 00 0f 85 cc 04 00 00 49 8b 6f 08 48 89 e8 48 c1 e8 03 <42> 80 3c 28 00 0f 85 19 05 00 00 48 89 5d 00 48 85 db 74 1a 48 8d All code ======== 0: 0f 85 ef 04 00 00 jne 0x4f5 6: 49 8d 7f 08 lea 0x8(%r15),%rdi a: 49 8b 1f mov (%r15),%rbx d: 48 89 f8 mov %rdi,%rax 10: 48 c1 e8 03 shr $0x3,%rax 14: 42 80 3c 28 00 cmpb $0x0,(%rax,%r13,1) 19: 0f 85 cc 04 00 00 jne 0x4eb 1f: 49 8b 6f 08 mov 0x8(%r15),%rbp 23: 48 89 e8 mov %rbp,%rax 26: 48 c1 e8 03 shr $0x3,%rax 2a:* 42 80 3c 28 00 cmpb $0x0,(%rax,%r13,1) <-- trapping instruction 2f: 0f 85 19 05 00 00 jne 0x54e 35: 48 89 5d 00 mov %rbx,0x0(%rbp) 39: 48 85 db test %rbx,%rbx 3c: 74 1a je 0x58 3e: 48 rex.W 3f: 8d .byte 0x8d Code starting with the faulting instruction =========================================== 0: 42 80 3c 28 00 cmpb $0x0,(%rax,%r13,1) 5: 0f 85 19 05 00 00 jne 0x524 b: 48 89 5d 00 mov %rbx,0x0(%rbp) f: 48 85 db test %rbx,%rbx 12: 74 1a je 0x2e 14: 48 rex.W 15: 8d .byte 0x8d [ 1562.560381][T13164] RSP: 0018:ffffc90003b0f388 EFLAGS: 00010207 [ 1562.560560][T13164] RAX: 0092c03bc00004a0 RBX: ffff888003a34100 RCX: ffffffffb50796f0 [ 1562.560755][T13164] RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffff888005465808 [ 1562.560951][T13164] RBP: 049601de00002506 R08: 0000000000000001 R09: fffffbfff7096280 [ 1562.561172][T13164] R10: ffffffffb84b1407 R11: 205d343631333154 R12: ffff88800546593c [ 1562.561379][T13164] R13: dffffc0000000000 R14: ffff88800323c000 R15: ffff888005465800 [ 1562.561584][T13164] FS: 00007f5753514800(0000) GS:ffff888036080000(0000) knlGS:0000000000000000 [ 1562.561812][T13164] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 1562.561979][T13164] CR2: 00000000004e2a90 CR3: 0000000009cbc003 CR4: 0000000000772ef0 [ 1562.562173][T13164] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 1562.562386][T13164] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 1562.562675][T13164] PKRU: 55555554 [ 1562.562838][T13164] Call Trace: [ 1562.562976][T13164] [1562.563052][T13164] ? die_addr (arch/x86/kernel/dumpstack.c:421 arch/x86/kernel/dumpstack.c:460) [1562.563158][T13164] ? exc_general_protection (arch/x86/kernel/traps.c:751 arch/x86/kernel/traps.c:693) [1562.563296][T13164] ? asm_exc_general_protection (./arch/x86/include/asm/idtentry.h:617) [1562.563427][T13164] ? neigh_flush_dev.isra.0 (./include/linux/list.h:986 ./include/linux/rculist.h:516 net/core/neighbour.c:384) [1562.563578][T13164] ? neigh_flush_dev.isra.0 (./include/linux/list.h:988 ./include/linux/rculist.h:516 net/core/neighbour.c:384) [1562.563710][T13164] ? neigh_flush_dev.isra.0 (./include/linux/list.h:986 ./include/linux/rculist.h:516 net/core/neighbour.c:384) [1562.563838][T13164] ? lock_acquire (kernel/locking/lockdep.c:5798) [1562.563971][T13164] __neigh_ifdown.isra.0 (net/core/neighbour.c:826 net/core/neighbour.c:426) [1562.564104][T13164] ? blocking_notifier_call_chain (kernel/notifier.c:388 kernel/notifier.c:376) [1562.564273][T13164] neigh_ifdown (net/core/neighbour.c:445) [1562.564371][T13164] fib_inetaddr_event (net/ipv4/fib_frontend.c:1431 net/ipv4/fib_frontend.c:1455) [1562.564516][T13164] notifier_call_chain (kernel/notifier.c:93 (discriminator 2)) [1562.564655][T13164] blocking_notifier_call_chain (kernel/notifier.c:389 kernel/notifier.c:376) [1562.564787][T13164] __inet_del_ifa (net/ipv4/devinet.c:488) [1562.564920][T13164] inet_rtm_deladdr (net/ipv4/devinet.c:706) [1562.565052][T13164] ? __pfx_inet_rtm_deladdr (net/ipv4/devinet.c:665) [1562.565187][T13164] rtnetlink_rcv_msg (net/core/rtnetlink.c:6721) [1562.565320][T13164] ? __pfx_rtnetlink_rcv_msg (net/core/rtnetlink.c:6615) [1562.565463][T13164] ? hlock_class (./arch/x86/include/asm/bitops.h:227 ./arch/x86/include/asm/bitops.h:239 ./include/asm-generic/bitops/instrumented-non-atomic.h:142 kernel/locking/lockdep.c:228) [1562.565596][T13164] ? mark_lock (kernel/locking/lockdep.c:4703 (discriminator 3)) [1562.565700][T13164] ? __lock_acquire (kernel/locking/lockdep.c:5202) [1562.565831][T13164] netlink_rcv_skb (net/netlink/af_netlink.c:2551) [1562.565968][T13164] ? __pfx_rtnetlink_rcv_msg (net/core/rtnetlink.c:6615) [1562.566098][T13164] ? __pfx_netlink_rcv_skb (net/netlink/af_netlink.c:2528) [1562.566232][T13164] ? netlink_deliver_tap (./include/linux/rcupdate.h:347 ./include/linux/rcupdate.h:880 net/netlink/af_netlink.c:340) [1562.566362][T13164] ? netlink_deliver_tap (./include/linux/rcupdate.h:347 ./include/linux/rcupdate.h:880 ./include/net/netns/generic.h:48 net/netlink/af_netlink.c:333) [1562.566584][T13164] netlink_unicast (net/netlink/af_netlink.c:1331 net/netlink/af_netlink.c:1357) [1562.566714][T13164] ? __pfx_netlink_unicast (net/netlink/af_netlink.c:1342) [1562.566850][T13164] ? find_held_lock (kernel/locking/lockdep.c:5315) [1562.566982][T13164] netlink_sendmsg (net/netlink/af_netlink.c:1901) [1562.567115][T13164] ? __pfx_netlink_sendmsg (net/netlink/af_netlink.c:1820) [1562.567323][T13164] ? __might_fault (mm/memory.c:6700 mm/memory.c:6693) [1562.567463][T13164] ? __import_iovec (lib/iov_iter.c:1433 lib/iov_iter.c:1449) [1562.567595][T13164] ____sys_sendmsg (net/socket.c:729 net/socket.c:744 net/socket.c:2607) [1562.567728][T13164] ? __pfx_____sys_sendmsg (net/socket.c:2553) [1562.567939][T13164] ? __pfx_copy_msghdr_from_user (net/socket.c:2533) [1562.568120][T13164] ___sys_sendmsg (net/socket.c:2663) [1562.568251][T13164] ? __pfx_stack_trace_save (kernel/stacktrace.c:114) [1562.568384][T13164] ? __pfx____sys_sendmsg (net/socket.c:2650) [1562.568596][T13164] ? __pfx_validate_chain (kernel/locking/lockdep.c:3860) [1562.568726][T13164] ? __pfx_slab_free_after_rcu_debug (mm/slub.c:4609) [1562.568890][T13164] ? kasan_save_stack (mm/kasan/common.c:49) [1562.569023][T13164] ? kasan_save_stack (mm/kasan/common.c:48) [1562.569230][T13164] ? __kasan_record_aux_stack (mm/kasan/generic.c:541) [1562.569373][T13164] ? __call_rcu_common.constprop.0 (./arch/x86/include/asm/irqflags.h:26 ./arch/x86/include/asm/irqflags.h:87 ./arch/x86/include/asm/irqflags.h:123 kernel/rcu/tree.c:3087) [1562.569546][T13164] ? __x64_sys_close (fs/open.c:1568 fs/open.c:1550 fs/open.c:1550) [1562.569676][T13164] ? do_syscall_64 (arch/x86/entry/common.c:52 arch/x86/entry/common.c:83) [1562.569883][T13164] ? entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) [1562.570044][T13164] ? __lock_acquire (kernel/locking/lockdep.c:5202) [1562.570176][T13164] ? find_held_lock (kernel/locking/lockdep.c:5315) [1562.570306][T13164] ? __lock_release (kernel/locking/lockdep.c:5501) [1562.570525][T13164] ? fdget (./include/linux/atomic/atomic-arch-fallback.h:479 ./include/linux/atomic/atomic-instrumented.h:50 fs/file.c:1114 fs/file.c:1128) [1562.570631][T13164] __sys_sendmsg (./include/linux/file.h:35 net/socket.c:2692) [1562.570761][T13164] ? __pfx___sys_sendmsg (net/socket.c:2678) [1562.570892][T13164] ? __virt_addr_valid (./include/linux/rcupdate.h:347 ./include/linux/rcupdate.h:962 ./include/linux/mmzone.h:2053 arch/x86/mm/physaddr.c:65) [1562.571104][T13164] do_syscall_64 (arch/x86/entry/common.c:52 arch/x86/entry/common.c:83) [1562.571233][T13164] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) [ 1562.571393][T13164] RIP: 0033:0x7f57537207b7 [ 1562.571603][T13164] Code: 0a 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b9 0f 1f 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 51 c3 48 83 ec 28 89 54 24 1c 48 89 74 24 10 All code ======== 0: 0a 00 or (%rax),%al 2: f7 d8 neg %eax 4: 64 89 02 mov %eax,%fs:(%rdx) 7: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax e: eb b9 jmp 0xffffffffffffffc9 10: 0f 1f 00 nopl (%rax) 13: f3 0f 1e fa endbr64 17: 64 8b 04 25 18 00 00 mov %fs:0x18,%eax 1e: 00 1f: 85 c0 test %eax,%eax 21: 75 10 jne 0x33 23: b8 2e 00 00 00 mov $0x2e,%eax 28: 0f 05 syscall 2a:* 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax <-- trapping instruction 30: 77 51 ja 0x83 32: c3 ret 33: 48 83 ec 28 sub $0x28,%rsp 37: 89 54 24 1c mov %edx,0x1c(%rsp) 3b: 48 89 74 24 10 mov %rsi,0x10(%rsp) Code starting with the faulting instruction =========================================== 0: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax 6: 77 51 ja 0x59 8: c3 ret 9: 48 83 ec 28 sub $0x28,%rsp d: 89 54 24 1c mov %edx,0x1c(%rsp) 11: 48 89 74 24 10 mov %rsi,0x10(%rsp) [ 1562.572163][T13164] RSP: 002b:00007ffc3b622af8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e [ 1562.572378][T13164] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f57537207b7 [ 1562.572664][T13164] RDX: 0000000000000000 RSI: 00007ffc3b622b60 RDI: 0000000000000005 [ 1562.572863][T13164] RBP: 0000000000000000 R08: 0000000000000003 R09: 0000000000000078 [ 1562.573141][T13164] R10: 00007f57535deef8 R11: 0000000000000246 R12: 00007ffc3b6232b0 Finger prints: neigh_ifdown:fib_inetaddr_event:notifier_call_chain:blocking_notifier_call_chain:__inet_del_ifa print_report:kasan_report:neigh_ifdown:fib_inetaddr_event:notifier_call_chain