====================================== | [ 436.421233][ T2634] ================================================================== | [ 436.421478][ T2634] BUG: KASAN: slab-use-after-free in ___neigh_create (./include/linux/rculist.h:598 net/core/neighbour.c:688) | [ 436.421712][ T2634] Write of size 8 at addr ffff888011339c18 by task ip/2634 | [ 436.421923][ T2634] [ 436.422209][ T2634] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 436.422547][ T2634] Call Trace: [ 436.422663][ T2634] [ 436.422749][ T2634] dump_stack_lvl (lib/dump_stack.c:123) [ 436.422933][ T2634] print_address_description.constprop.0 (mm/kasan/report.c:378) [ 436.423131][ T2634] ? ___neigh_create (./include/linux/rculist.h:598 net/core/neighbour.c:688) [ 436.423297][ T2634] print_report (mm/kasan/report.c:489) [ 436.423459][ T2634] ? kasan_addr_to_slab (./include/linux/mm.h:1282 mm/kasan/../slab.h:206 mm/kasan/common.c:38) [ 436.423599][ T2634] kasan_report (mm/kasan/report.c:603) [ 436.423722][ T2634] ? ___neigh_create (./include/linux/rculist.h:598 net/core/neighbour.c:688) [ 436.423866][ T2634] ___neigh_create (./include/linux/rculist.h:598 net/core/neighbour.c:688) [ 436.424023][ T2634] neigh_add (net/core/neighbour.c:1935) [ 436.424127][ T2634] ? __pfx_neigh_add (net/core/neighbour.c:1934) [ 436.424262][ T2634] ? __mutex_lock (./arch/x86/include/asm/preempt.h:94 kernel/locking/mutex.c:618 kernel/locking/mutex.c:752) [ 436.424422][ T2634] rtnetlink_rcv_msg (net/core/rtnetlink.c:6721) [ 436.424563][ T2634] ? __pfx_rtnetlink_rcv_msg (net/core/rtnetlink.c:6615) [ 436.424701][ T2634] ? 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) [ 436.424860][ T2634] ? mark_lock (kernel/locking/lockdep.c:4703 (discriminator 3)) [ 436.424974][ T2634] ? __lock_acquire (kernel/locking/lockdep.c:5202) [ 436.425130][ T2634] netlink_rcv_skb (net/netlink/af_netlink.c:2551) [ 436.425267][ T2634] ? __pfx_rtnetlink_rcv_msg (net/core/rtnetlink.c:6615) [ 436.425441][ T2634] ? __pfx_netlink_rcv_skb (net/netlink/af_netlink.c:2528) [ 436.425582][ T2634] ? netlink_deliver_tap (./include/linux/rcupdate.h:347 ./include/linux/rcupdate.h:880 net/netlink/af_netlink.c:340) [ 436.425737][ T2634] ? 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) [ 436.425919][ T2634] netlink_unicast (net/netlink/af_netlink.c:1331 net/netlink/af_netlink.c:1357) [ 436.426065][ T2634] ? __pfx_netlink_unicast (net/netlink/af_netlink.c:1342) [ 436.426212][ T2634] ? find_held_lock (kernel/locking/lockdep.c:5315) [ 436.426353][ T2634] netlink_sendmsg (net/netlink/af_netlink.c:1901) [ 436.426509][ T2634] ? __pfx_netlink_sendmsg (net/netlink/af_netlink.c:1820) [ 436.426669][ T2634] ? __might_fault (mm/memory.c:6700 mm/memory.c:6693) [ 436.426814][ T2634] ? __import_iovec (lib/iov_iter.c:1433 lib/iov_iter.c:1449) [ 436.426979][ T2634] ____sys_sendmsg (net/socket.c:729 net/socket.c:744 net/socket.c:2607) [ 436.427125][ T2634] ? __pfx_____sys_sendmsg (net/socket.c:2553) [ 436.427265][ T2634] ? __pfx_copy_msghdr_from_user (net/socket.c:2533) [ 436.427451][ T2634] ___sys_sendmsg (net/socket.c:2663) [ 436.427600][ T2634] ? __pfx____sys_sendmsg (net/socket.c:2650) [ 436.427744][ T2634] ? ___sys_recvmsg (net/socket.c:2858) [ 436.427985][ T2634] ? __pfx____sys_recvmsg (net/socket.c:2858) [ 436.428124][ T2634] ? reacquire_held_locks (kernel/locking/lockdep.c:5350) [ 436.428276][ T2634] ? 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) [ 436.428428][ T2634] ? fdget (./include/linux/atomic/atomic-arch-fallback.h:479 ./include/linux/atomic/atomic-instrumented.h:50 fs/file.c:1114 fs/file.c:1128) [ 436.428547][ T2634] __sys_sendmsg (./include/linux/file.h:35 net/socket.c:2692) [ 436.428694][ T2634] ? __pfx___sys_sendmsg (net/socket.c:2678) [ 436.428838][ T2634] ? __pfx___up_read (kernel/locking/rwsem.c:1337) [ 436.429000][ T2634] do_syscall_64 (arch/x86/entry/common.c:52 arch/x86/entry/common.c:83) [ 436.429142][ T2634] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) [ 436.429328][ T2634] RIP: 0033:0x7fa38fb797b7 [ 436.429492][ T2634] 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) [ 436.430002][ T2634] RSP: 002b:00007ffd80cfdba8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e [ 436.430248][ T2634] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fa38fb797b7 [ 436.430479][ T2634] RDX: 0000000000000000 RSI: 00007ffd80cfdc10 RDI: 0000000000000005 [ 436.430728][ T2634] RBP: 0000000000000000 R08: 0000000000000014 R09: 0000000000000000 [ 436.430959][ T2634] R10: 00007fa38fa32708 R11: 0000000000000246 R12: 0000000000000000 [ 436.431191][ T2634] R13: 00000000671671ec R14: 0000000000496600 R15: 00007ffd80cfe148 | [ 436.444141][ T2634] Disabling lock debugging due to kernel taint | [ 436.772759][ T11] Oops: general protection fault, probably for non-canonical address 0xed6d696d6d6d6d6d: 0000 [#1] PREEMPT SMP KASAN NOPTI | [ 436.773117][ T11] KASAN: maybe wild-memory-access in range [0x6b6b6b6b6b6b6b68-0x6b6b6b6b6b6b6b6f] | [ 436.773618][ T11] Tainted: [B]=BAD_PAGE [ 436.773721][ T11] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 436.774006][ T11] Workqueue: netns cleanup_net [ 436.774148][ T11] RIP: 0010:neigh_flush_dev.isra.0 (./include/linux/list.h:988 ./include/linux/rculist.h:516 net/core/neighbour.c:384) [ 436.774324][ T11] 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 [ 436.774806][ T11] RSP: 0018:ffffc900000bf7a8 EFLAGS: 00010202 [ 436.774972][ T11] RAX: 0d6d6d6d6d6d6d6d RBX: 6b6b6b6b6b6b6b6b RCX: ffffffff84cc6ef0 [ 436.775155][ T11] RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffff888011339c08 [ 436.775341][ T11] RBP: 6b6b6b6b6b6b6b6b R08: 0000000000000000 R09: 0000000000000000 [ 436.775550][ T11] R10: ffffffff873e878f R11: ffffc900000bf3b9 R12: ffff888011339d3c [ 436.775745][ T11] R13: dffffc0000000000 R14: ffff888004dd9000 R15: ffff888011339c00 [ 436.775949][ T11] FS: 0000000000000000(0000) GS:ffff888036100000(0000) knlGS:0000000000000000 [ 436.776165][ T11] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 436.776323][ T11] CR2: 00007efdc7fb32a8 CR3: 0000000007b00005 CR4: 0000000000772ef0 [ 436.776514][ T11] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 436.776730][ T11] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 436.776916][ T11] PKRU: 55555554 [ 436.777014][ T11] Call Trace: [ 436.777129][ T11] [ 436.777196][ T11] ? die_addr (arch/x86/kernel/dumpstack.c:421 arch/x86/kernel/dumpstack.c:460) [ 436.777299][ T11] ? exc_general_protection (arch/x86/kernel/traps.c:751 arch/x86/kernel/traps.c:693) [ 436.777431][ T11] ? asm_exc_general_protection (./arch/x86/include/asm/idtentry.h:617) [ 436.777559][ T11] ? neigh_flush_dev.isra.0 (./include/linux/list.h:986 ./include/linux/rculist.h:516 net/core/neighbour.c:384) [ 436.777687][ T11] ? neigh_flush_dev.isra.0 (./include/linux/list.h:988 ./include/linux/rculist.h:516 net/core/neighbour.c:384) [ 436.777810][ T11] ? neigh_flush_dev.isra.0 (./include/linux/list.h:986 ./include/linux/rculist.h:516 net/core/neighbour.c:384) [ 436.777958][ T11] ? lock_acquire (kernel/locking/lockdep.c:5798) [ 436.778088][ T11] __neigh_ifdown.isra.0 (net/core/neighbour.c:826 net/core/neighbour.c:426) [ 436.778214][ T11] ? fib_flush (net/ipv4/fib_frontend.c:195 (discriminator 11)) [ 436.778310][ T11] neigh_ifdown (net/core/neighbour.c:445) [ 436.778404][ T11] fib_netdev_event (net/ipv4/fib_frontend.c:1521) [ 436.778526][ T11] notifier_call_chain (kernel/notifier.c:93 (discriminator 2)) [ 436.778655][ T11] dev_close_many (net/core/dev.c:1590) [ 436.778782][ T11] ? trace_irq_enable.constprop.0 (./include/trace/events/preemptirq.h:40) [ 436.778939][ T11] ? __pfx_dev_close_many (net/core/dev.c:1577) [ 436.779066][ T11] ? __mutex_trylock_common (./arch/x86/include/asm/atomic64_64.h:101 ./include/linux/atomic/atomic-arch-fallback.h:4296 ./include/linux/atomic/atomic-long.h:1482 ./include/linux/atomic/atomic-instrumented.h:4458 kernel/locking/mutex.c:129) [ 436.779192][ T11] unregister_netdevice_many_notify (net/core/dev.c:11503) [ 436.779350][ T11] ? lock_acquire (kernel/locking/lockdep.c:5798) [ 436.779472][ T11] ? trace_contention_end (./include/trace/events/lock.h:122 (discriminator 52)) [ 436.779623][ T11] ? __mutex_lock (./arch/x86/include/asm/preempt.h:94 kernel/locking/mutex.c:618 kernel/locking/mutex.c:752) [ 436.779753][ T11] ? __pfx_unregister_netdevice_many_notify (net/core/dev.c:11470) [ 436.779907][ T11] ? __mutex_lock (./arch/x86/include/asm/preempt.h:94 kernel/locking/mutex.c:618 kernel/locking/mutex.c:752) [ 436.780033][ T11] ? mutex_is_locked (./arch/x86/include/asm/atomic64_64.h:15 ./include/linux/atomic/atomic-arch-fallback.h:2583 ./include/linux/atomic/atomic-long.h:38 ./include/linux/atomic/atomic-instrumented.h:3189 kernel/locking/mutex.c:81 kernel/locking/mutex.c:91) [ 436.780157][ T11] ? rtnl_is_locked (net/core/rtnetlink.c:164) [ 436.780278][ T11] ? unregister_netdevice_queue (net/core/dev.c:11455) [ 436.780430][ T11] ? __pfx_unregister_netdevice_queue (net/core/dev.c:11454) [ 436.780583][ T11] ? ops_exit_list (net/core/net_namespace.c:173 (discriminator 3)) [ 436.780707][ T11] ? __pfx_unregister_netdevice_queue (net/core/dev.c:11454) [ 436.780865][ T11] ? __mutex_unlock_slowpath (./arch/x86/include/asm/atomic64_64.h:101 ./include/linux/atomic/atomic-arch-fallback.h:4329 ./include/linux/atomic/atomic-long.h:1506 ./include/linux/atomic/atomic-instrumented.h:4481 kernel/locking/mutex.c:929) [ 436.780993][ T11] default_device_exit_batch (net/core/dev.c:12075) [ 436.781135][ T11] ? __pfx_default_device_exit_batch (net/core/dev.c:12050) [ 436.781289][ T11] ? ops_exit_list (net/core/net_namespace.c:172 (discriminator 3)) [ 436.781422][ T11] cleanup_net (net/core/net_namespace.c:632 (discriminator 3)) [ 436.781562][ T11] ? __pfx_cleanup_net (net/core/net_namespace.c:577) [ 436.781686][ T11] ? trace_lock_acquire (./include/trace/events/lock.h:24 (discriminator 52)) [ 436.781809][ T11] ? process_one_work (kernel/workqueue.c:3205) [ 436.781939][ T11] ? lock_acquire (kernel/locking/lockdep.c:5798) [ 436.782067][ T11] ? process_one_work (kernel/workqueue.c:3205) [ 436.782191][ T11] process_one_work (kernel/workqueue.c:3229) [ 436.782315][ T11] ? __pfx___lock_release (kernel/locking/lockdep.c:5477) [ 436.782441][ T11] ? __pfx_process_one_work (kernel/workqueue.c:3131) [ 436.782577][ T11] ? assign_work (kernel/workqueue.c:1200) [ 436.782705][ T11] worker_thread (kernel/workqueue.c:3304 kernel/workqueue.c:3391) [ 436.782830][ T11] ? __pfx_worker_thread (kernel/workqueue.c:3337) [ 436.782957][ T11] kthread (kernel/kthread.c:389) [ 436.783056][ T11] ? __pfx_kthread (kernel/kthread.c:342) [ 436.783180][ T11] ret_from_fork (arch/x86/kernel/process.c:147) [ 436.783309][ T11] ? __pfx_kthread (kernel/kthread.c:342) Finger prints: neigh_ifdown:fib_netdev_event:notifier_call_chain:dev_close_many:unregister_netdevice_many_notify print_report:kasan_report:___neigh_create:neigh_add:rtnetlink_rcv_msg