====================================== | [ 64.697674][ T369] ================================================================== | [ 64.697903][ T369] BUG: KASAN: slab-use-after-free in ___neigh_create (./include/linux/rculist.h:598 net/core/neighbour.c:688) | [ 64.698106][ T369] Write of size 8 at addr ffff888006532818 by task ip/369 | [ 64.698297][ T369] [ 64.698596][ T369] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 64.698884][ T369] Call Trace: [ 64.698990][ T369] [ 64.699068][ T369] dump_stack_lvl (lib/dump_stack.c:123) [ 64.699240][ T369] print_address_description.constprop.0 (mm/kasan/report.c:378) [ 64.699477][ T369] ? ___neigh_create (./include/linux/rculist.h:598 net/core/neighbour.c:688) [ 64.699622][ T369] print_report (mm/kasan/report.c:489) [ 64.699748][ T369] ? kasan_addr_to_slab (./include/linux/mm.h:1282 mm/kasan/../slab.h:206 mm/kasan/common.c:38) [ 64.699876][ T369] kasan_report (mm/kasan/report.c:603) [ 64.699974][ T369] ? ___neigh_create (./include/linux/rculist.h:598 net/core/neighbour.c:688) [ 64.700104][ T369] ___neigh_create (./include/linux/rculist.h:598 net/core/neighbour.c:688) [ 64.700252][ T369] neigh_add (net/core/neighbour.c:1935) [ 64.700349][ T369] ? __pfx_neigh_add (net/core/neighbour.c:1934) [ 64.700480][ T369] ? __mutex_lock (./arch/x86/include/asm/preempt.h:94 kernel/locking/mutex.c:618 kernel/locking/mutex.c:752) [ 64.700624][ T369] rtnetlink_rcv_msg (net/core/rtnetlink.c:6721) [ 64.700758][ T369] ? __pfx_rtnetlink_rcv_msg (net/core/rtnetlink.c:6615) [ 64.700916][ T369] ? 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) [ 64.701065][ T369] ? mark_lock (kernel/locking/lockdep.c:4703 (discriminator 3)) [ 64.701169][ T369] ? __lock_acquire (kernel/locking/lockdep.c:5202) [ 64.701316][ T369] netlink_rcv_skb (net/netlink/af_netlink.c:2551) [ 64.701452][ T369] ? __pfx_rtnetlink_rcv_msg (net/core/rtnetlink.c:6615) [ 64.701595][ T369] ? __pfx_netlink_rcv_skb (net/netlink/af_netlink.c:2528) [ 64.701746][ T369] ? netlink_deliver_tap (./include/linux/rcupdate.h:347 ./include/linux/rcupdate.h:880 net/netlink/af_netlink.c:340) [ 64.701888][ T369] ? 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) [ 64.702026][ T369] netlink_unicast (net/netlink/af_netlink.c:1331 net/netlink/af_netlink.c:1357) [ 64.702168][ T369] ? __pfx_netlink_unicast (net/netlink/af_netlink.c:1342) [ 64.702319][ T369] ? find_held_lock (kernel/locking/lockdep.c:5315) [ 64.702463][ T369] netlink_sendmsg (net/netlink/af_netlink.c:1901) [ 64.702608][ T369] ? __pfx_netlink_sendmsg (net/netlink/af_netlink.c:1820) [ 64.702749][ T369] ? __might_fault (mm/memory.c:6700 mm/memory.c:6693) [ 64.702898][ T369] ? __import_iovec (lib/iov_iter.c:1433 lib/iov_iter.c:1449) [ 64.703044][ T369] ____sys_sendmsg (net/socket.c:729 net/socket.c:744 net/socket.c:2607) [ 64.703198][ T369] ? __pfx_____sys_sendmsg (net/socket.c:2553) [ 64.703340][ T369] ? __pfx_copy_msghdr_from_user (net/socket.c:2533) [ 64.703523][ T369] ___sys_sendmsg (net/socket.c:2663) [ 64.703668][ T369] ? __pfx____sys_sendmsg (net/socket.c:2650) [ 64.703812][ T369] ? ___sys_recvmsg (net/socket.c:2858) [ 64.703952][ T369] ? __pfx____sys_recvmsg (net/socket.c:2858) [ 64.704099][ T369] ? reacquire_held_locks (kernel/locking/lockdep.c:5350) [ 64.704256][ T369] ? do_user_addr_fault (./include/linux/rcupdate.h:337 ./include/linux/rcupdate.h:849 ./include/linux/mm.h:727 arch/x86/mm/fault.c:1340) [ 64.704400][ T369] ? fdget (./include/linux/atomic/atomic-arch-fallback.h:479 ./include/linux/atomic/atomic-instrumented.h:50 fs/file.c:1114 fs/file.c:1128) [ 64.704511][ T369] __sys_sendmsg (./include/linux/file.h:35 net/socket.c:2692) [ 64.704651][ T369] ? __pfx___sys_sendmsg (net/socket.c:2678) [ 64.704794][ T369] ? __pfx___up_read (kernel/locking/rwsem.c:1337) [ 64.704944][ T369] do_syscall_64 (arch/x86/entry/common.c:52 arch/x86/entry/common.c:83) [ 64.705092][ T369] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) [ 64.705293][ T369] RIP: 0033:0x7f7dc1fbc7b7 [ 64.705499][ T369] 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) [ 64.706004][ T369] RSP: 002b:00007ffdb2901e58 EFLAGS: 00000246 ORIG_RAX: 000000000000002e [ 64.706232][ T369] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f7dc1fbc7b7 [ 64.706461][ T369] RDX: 0000000000000000 RSI: 00007ffdb2901ec0 RDI: 0000000000000005 [ 64.706671][ T369] RBP: 0000000000000001 R08: 0000000000000014 R09: 0000000000000000 [ 64.706889][ T369] R10: 00007f7dc1e75708 R11: 0000000000000246 R12: 00007ffdb290396f [ 64.707103][ T369] R13: 0000000067169a14 R14: 0000000000496600 R15: 00007ffdb29023e8 | [ 107.627322][ T589] veth1: left promiscuous mode | [ 108.121373][ T38] Oops: general protection fault, probably for non-canonical address 0xe0793c2d40000000: 0000 [#1] PREEMPT SMP KASAN NOPTI | [ 108.121776][ T38] KASAN: maybe wild-memory-access in range [0x03ca016a00000000-0x03ca016a00000007] | [ 108.122262][ T38] Tainted: [B]=BAD_PAGE [ 108.122363][ T38] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 108.122666][ T38] Workqueue: events_unbound linkwatch_event [ 108.122852][ T38] RIP: 0010:neigh_flush_dev.isra.0 (./include/linux/list.h:988 ./include/linux/rculist.h:516 net/core/neighbour.c:384) [ 108.123025][ T38] 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 [ 108.123537][ T38] RSP: 0018:ffffc900002b7a08 EFLAGS: 00010206 [ 108.123709][ T38] RAX: 0079402d40000000 RBX: ffff88800553d800 RCX: ffffffffa38796f0 [ 108.123918][ T38] RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffff888005539c08 [ 108.124104][ T38] RBP: 03ca016a00000000 R08: 0000000000000000 R09: 0000000000000000 [ 108.124290][ T38] R10: ffffffffa5d71f0f R11: ffffffffa16c2ce1 R12: ffff888005539d3c [ 108.124482][ T38] R13: dffffc0000000000 R14: ffff8880057f1000 R15: ffff888005539c00 [ 108.124696][ T38] FS: 0000000000000000(0000) GS:ffff888036180000(0000) knlGS:0000000000000000 [ 108.124916][ T38] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 108.125082][ T38] CR2: 000055901540edec CR3: 0000000005e34002 CR4: 0000000000772ef0 [ 108.125273][ T38] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 108.125468][ T38] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 108.125689][ T38] PKRU: 55555554 [ 108.125785][ T38] Call Trace: [ 108.125880][ T38] [ 108.125948][ T38] ? die_addr (arch/x86/kernel/dumpstack.c:421 arch/x86/kernel/dumpstack.c:460) [ 108.126075][ T38] ? exc_general_protection (arch/x86/kernel/traps.c:751 arch/x86/kernel/traps.c:693) [ 108.126208][ T38] ? asm_exc_general_protection (./arch/x86/include/asm/idtentry.h:617) [ 108.126335][ T38] ? ret_from_fork (arch/x86/kernel/process.c:147) [ 108.126464][ T38] ? neigh_flush_dev.isra.0 (./include/linux/list.h:986 ./include/linux/rculist.h:516 net/core/neighbour.c:384) [ 108.126616][ T38] ? neigh_flush_dev.isra.0 (./include/linux/list.h:988 ./include/linux/rculist.h:516 net/core/neighbour.c:384) [ 108.126764][ T38] ? neigh_flush_dev.isra.0 (./include/linux/list.h:986 ./include/linux/rculist.h:516 net/core/neighbour.c:384) [ 108.126898][ T38] ? lock_acquire (kernel/locking/lockdep.c:5798) [ 108.127030][ T38] __neigh_ifdown.isra.0 (net/core/neighbour.c:826 net/core/neighbour.c:426) [ 108.127205][ T38] neigh_carrier_down (net/core/neighbour.c:438) [ 108.127332][ T38] arp_netdev_event (net/ipv4/arp.c:1343) [ 108.127460][ T38] ? trace_notifier_run (./include/trace/events/notifier.h:59 (discriminator 52)) [ 108.127626][ T38] notifier_call_chain (kernel/notifier.c:93 (discriminator 2)) [ 108.127769][ T38] netdev_state_change (net/core/dev.c:1380 net/core/dev.c:1371) [ 108.127919][ T38] ? __pfx_netdev_state_change (net/core/dev.c:1372) [ 108.128061][ T38] ? dev_deactivate (./include/linux/list.h:111 ./include/linux/list.h:215 ./include/linux/list.h:229 net/sched/sch_generic.c:1404) [ 108.128206][ T38] ? veth_get_iflink (./include/linux/rcupdate.h:347 ./include/linux/rcupdate.h:880 drivers/net/veth.c:1450) veth [ 108.128353][ T38] linkwatch_do_dev (net/core/link_watch.c:177) [ 108.128497][ T38] __linkwatch_run_queue (./include/linux/spinlock.h:376 net/core/link_watch.c:236) [ 108.128638][ T38] ? trace_lock_acquire (./include/trace/events/lock.h:24 (discriminator 52)) [ 108.128800][ T38] ? __pfx___linkwatch_run_queue (net/core/link_watch.c:186) [ 108.128975][ T38] ? process_one_work (kernel/workqueue.c:3205) [ 108.129120][ T38] ? lock_acquire (kernel/locking/lockdep.c:5798) [ 108.129269][ T38] linkwatch_event (net/core/link_watch.c:278) [ 108.129414][ T38] process_one_work (kernel/workqueue.c:3229) [ 108.129568][ T38] ? __pfx___lock_release (kernel/locking/lockdep.c:5477) [ 108.129722][ T38] ? __pfx_process_one_work (kernel/workqueue.c:3131) [ 108.129883][ T38] ? assign_work (kernel/workqueue.c:1200) [ 108.130032][ T38] worker_thread (kernel/workqueue.c:3304 kernel/workqueue.c:3391) [ 108.130177][ T38] ? __pfx_worker_thread (kernel/workqueue.c:3337) [ 108.130329][ T38] kthread (kernel/kthread.c:389) [ 108.130452][ T38] ? __pfx_kthread (kernel/kthread.c:342) [ 108.130616][ T38] ret_from_fork (arch/x86/kernel/process.c:147) [ 108.130772][ T38] ? __pfx_kthread (kernel/kthread.c:342) Finger prints: neigh_carrier_down:arp_netdev_event:notifier_call_chain:netdev_state_change:linkwatch_do_dev print_report:kasan_report:___neigh_create:neigh_add:rtnetlink_rcv_msg