======================================
| [ 2843.093302][ C3] ==================================================================
| [ 2843.093709][ C3] BUG: KASAN: slab-use-after-free in dst_dev_put (net/core/dst.c:146)
| [ 2843.094000][ C3] Read of size 8 at addr ffff888015cc2640 by task swapper/3/0
| [ 2843.094279][ C3]
[ 2843.094394][ C3] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[ 2843.094396][ C3] Call Trace:
[ 2843.094398][ C3]
[ 2843.094401][ C3] dump_stack_lvl (lib/dump_stack.c:123)
[ 2843.094410][ C3] print_address_description.constprop.0 (mm/kasan/report.c:379)
[ 2843.094419][ C3] ? dst_dev_put (net/core/dst.c:146)
[ 2843.094422][ C3] print_report (mm/kasan/report.c:483)
[ 2843.094426][ C3] ? dst_dev_put (net/core/dst.c:146)
[ 2843.094429][ C3] ? kasan_addr_to_slab (mm/kasan/../slab.h:178 mm/kasan/common.c:47)
[ 2843.094433][ C3] ? dst_dev_put (net/core/dst.c:146)
[ 2843.094436][ C3] kasan_report (mm/kasan/report.c:597)
[ 2843.094440][ C3] ? dst_dev_put (net/core/dst.c:146)
[ 2843.094445][ C3] dst_dev_put (net/core/dst.c:146)
[ 2843.094449][ C3] rt_fibinfo_free_cpus.part.0 (net/ipv4/fib_semantics.c:196)
[ 2843.094456][ C3] fib_nh_common_release (net/ipv4/fib_semantics.c:141 net/ipv4/fib_semantics.c:207)
[ 2843.094460][ C3] free_fib_info_rcu (./include/net/nexthop.h:480 (discriminator 3) net/ipv4/fib_semantics.c:229 (discriminator 3))
[ 2843.094464][ C3] ? nexthop_mpath_fill_node.constprop.0 (net/ipv4/fib_semantics.c:223)
[ 2843.094468][ C3] rcu_do_batch (./include/linux/rcupdate.h:341 kernel/rcu/tree.c:2607)
[ 2843.094475][ C3] ? trace_rcu_batch_end (kernel/rcu/tree.c:2529)
[ 2843.094478][ C3] ? _raw_spin_unlock_irqrestore (./include/linux/spinlock_api_smp.h:151 kernel/locking/spinlock.c:194)
[ 2843.094485][ C3] ? lockdep_hardirqs_on (kernel/locking/lockdep.c:4472)
[ 2843.094492][ C3] ? _raw_spin_unlock_irqrestore (./arch/x86/include/asm/preempt.h:104 ./include/linux/spinlock_api_smp.h:152 kernel/locking/spinlock.c:194)
[ 2843.094497][ C3] rcu_core (kernel/rcu/tree.c:2859)
[ 2843.094501][ C3] handle_softirqs (./arch/x86/include/asm/jump_label.h:37 ./include/trace/events/irq.h:142 kernel/softirq.c:623)
[ 2843.094510][ C3] __irq_exit_rcu (kernel/softirq.c:657 kernel/softirq.c:496 kernel/softirq.c:723)
[ 2843.094512][ C3] irq_exit_rcu (kernel/softirq.c:741)
[ 2843.094515][ C3] sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1056 arch/x86/kernel/apic/apic.c:1056)
[ 2843.094519][ C3]
[ 2843.094520][ C3]
[ 2843.094522][ C3] asm_sysvec_apic_timer_interrupt (./arch/x86/include/asm/idtentry.h:697)
[ 2843.094526][ C3] RIP: 0010:pv_native_safe_halt (arch/x86/kernel/paravirt.c:82)
[ 2843.094531][ C3] Code: 48 8b 3d 34 31 90 02 e8 1f 00 00 00 48 2b 05 28 07 a9 00 c3 0f 1f 80 00 00 00 00 f3 0f 1e fa eb 07 0f 00 2d d3 d6 28 00 fb f4 0f 1f 40 d6 41 54 55 53 48 89 fb 48 83 ec 10 8b 17 83 e2 fe 41
All code
========
0: 48 8b 3d 34 31 90 02 mov 0x2903134(%rip),%rdi # 0x290313b
7: e8 1f 00 00 00 call 0x2b
c: 48 2b 05 28 07 a9 00 sub 0xa90728(%rip),%rax # 0xa9073b
13: c3 ret
14: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
1b: f3 0f 1e fa endbr64
1f: eb 07 jmp 0x28
21: 0f 00 2d d3 d6 28 00 verw 0x28d6d3(%rip) # 0x28d6fb
28: fb sti
29: f4 hlt
2a:* c3 ret <-- trapping instruction
2b: 0f 1f 40 d6 nopl -0x2a(%rax)
2f: 41 54 push %r12
31: 55 push %rbp
32: 53 push %rbx
33: 48 89 fb mov %rdi,%rbx
36: 48 83 ec 10 sub $0x10,%rsp
3a: 8b 17 mov (%rdi),%edx
3c: 83 e2 fe and $0xfffffffe,%edx
3f: 41 rex.B
Code starting with the faulting instruction
===========================================
0: c3 ret
1: 0f 1f 40 d6 nopl -0x2a(%rax)
5: 41 54 push %r12
7: 55 push %rbp
8: 53 push %rbx
9: 48 89 fb mov %rdi,%rbx
c: 48 83 ec 10 sub $0x10,%rsp
10: 8b 17 mov (%rdi),%edx
12: 83 e2 fe and $0xfffffffe,%edx
15: 41 rex.B
[ 2843.094534][ C3] RSP: 0018:ffffc90000157dd8 EFLAGS: 00000206
[ 2843.094538][ C3] RAX: 0000000003d79cbd RBX: 1ffff9200002afbf RCX: ffffffffa900a255
[ 2843.094540][ C3] RDX: 0000000000000000 RSI: ffffffffa99fa925 RDI: ffffffffa946a600
[ 2843.094542][ C3] RBP: 0000000000000000 R08: 0000000000000001 R09: ffffed100da3631a
[ 2843.094544][ C3] R10: ffff88806d1b18d3 R11: ffff888001ae5090 R12: 0000000000000000
[ 2843.094545][ C3] R13: ffff888001ae4640 R14: dffffc0000000000 R15: 0000000000000000
[ 2843.094549][ C3] ? ct_kernel_exit.constprop.0 (kernel/context_tracking.c:146)
[ 2843.094554][ C3] default_idle (./arch/x86/include/asm/paravirt.h:107 arch/x86/kernel/process.c:767)
[ 2843.094557][ C3] default_idle_call (./include/linux/cpuidle.h:143 kernel/sched/idle.c:123)
[ 2843.094559][ C3] cpuidle_idle_call (kernel/sched/idle.c:192)
[ 2843.094564][ C3] ? arch_cpu_idle_exit+0x40/0x40
[ 2843.094567][ C3] ? trace_irq_enable.constprop.0 (./arch/x86/include/asm/bitops.h:222 ./arch/x86/include/asm/bitops.h:233 ./include/asm-generic/bitops/instrumented-non-atomic.h:142 ./include/linux/cpumask.h:647 ./include/linux/cpumask.h:1229 ./include/trace/events/preemptirq.h:40)
[ 2843.094573][ C3] ? tsc_verify_tsc_adjust (arch/x86/kernel/tsc_sync.c:60)
[ 2843.094580][ C3] do_idle (kernel/sched/idle.c:332)
[ 2843.094583][ C3] cpu_startup_entry (kernel/sched/idle.c:429 (discriminator 1))
[ 2843.094586][ C3] start_secondary (arch/x86/kernel/smpboot.c:200 arch/x86/kernel/smpboot.c:280)
[ 2843.094589][ C3] ? set_cpu_sibling_map (arch/x86/kernel/smpboot.c:230)
[ 2843.094594][ C3] common_startup_64 (arch/x86/kernel/head_64.S:419)
| [ 2843.121848][ C3] Disabling lock debugging due to kernel taint
| [ 2843.122095][ C3] Oops: general protection fault, probably for non-canonical address 0xe0273c3740000007: 0000 [#1] SMP KASAN
| [ 2843.122606][ C3] KASAN: maybe wild-memory-access in range [0x013a01ba00000038-0x013a01ba0000003f]
| [ 2843.123286][ C3] Tainted: [B]=BAD_PAGE
[ 2843.123426][ C3] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[ 2843.123660][ C3] RIP: 0010:dst_dev_put (net/core/dst.c:149)
[ 2843.123956][ C3] Code: fc ff df 48 c1 ea 03 80 3c 02 00 0f 85 9c 01 00 00 48 b8 00 00 00 00 00 fc ff df 49 8b 6d 08 48 8d 7d 38 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 6f 01 00 00 48 8b 45 38 48 85 c0 74 08 4c 89 e6
All code
========
0: fc cld
1: ff lcall (bad)
2: df 48 c1 fisttps -0x3f(%rax)
5: ea (bad)
6: 03 80 3c 02 00 0f add 0xf00023c(%rax),%eax
c: 85 9c 01 00 00 48 b8 test %ebx,-0x47b80000(%rcx,%rax,1)
13: 00 00 add %al,(%rax)
15: 00 00 add %al,(%rax)
17: 00 fc add %bh,%ah
19: ff lcall (bad)
1a: df 49 8b fisttps -0x75(%rcx)
1d: 6d insl (%dx),%es:(%rdi)
1e: 08 48 8d or %cl,-0x73(%rax)
21: 7d 38 jge 0x5b
23: 48 89 fa mov %rdi,%rdx
26: 48 c1 ea 03 shr $0x3,%rdx
2a:* 80 3c 02 00 cmpb $0x0,(%rdx,%rax,1) <-- trapping instruction
2e: 0f 85 6f 01 00 00 jne 0x1a3
34: 48 8b 45 38 mov 0x38(%rbp),%rax
38: 48 85 c0 test %rax,%rax
3b: 74 08 je 0x45
3d: 4c 89 e6 mov %r12,%rsi
Code starting with the faulting instruction
===========================================
0: 80 3c 02 00 cmpb $0x0,(%rdx,%rax,1)
4: 0f 85 6f 01 00 00 jne 0x179
a: 48 8b 45 38 mov 0x38(%rbp),%rax
e: 48 85 c0 test %rax,%rax
11: 74 08 je 0x1b
13: 4c 89 e6 mov %r12,%rsi
[ 2843.124703][ C3] RSP: 0018:ffffc90000270d48 EFLAGS: 00010202
[ 2843.124940][ C3] RAX: dffffc0000000000 RBX: dffffc0000000000 RCX: ffffffffa868b398
[ 2843.125214][ C3] RDX: 0027403740000007 RSI: 0000000000000008 RDI: 013a01ba00000038
[ 2843.125591][ C3] RBP: 013a01ba00000000 R08: 0000000000000001 R09: fffffbfff572a8c4
[ 2843.125861][ C3] R10: ffffffffab954627 R11: ffffc90000270800 R12: ffff888015cc3e40
[ 2843.126137][ C3] R13: ffff888015cc2640 R14: 0000000000000000 R15: ffff888015cc2640
[ 2843.126520][ C3] FS: 0000000000000000(0000) GS:ffff8880c1898000(0000) knlGS:0000000000000000
[ 2843.126845][ C3] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 2843.127074][ C3] CR2: 00007fd4c8053600 CR3: 0000000066545002 CR4: 0000000000772ef0
[ 2843.127457][ C3] PKRU: 55555554
[ 2843.127601][ C3] Call Trace:
[ 2843.127844][ C3]
[ 2843.127940][ C3] rt_fibinfo_free_cpus.part.0 (net/ipv4/fib_semantics.c:196)
[ 2843.128238][ C3] fib_nh_common_release (net/ipv4/fib_semantics.c:141 net/ipv4/fib_semantics.c:207)
[ 2843.128422][ C3] free_fib_info_rcu (./include/net/nexthop.h:480 (discriminator 3) net/ipv4/fib_semantics.c:229 (discriminator 3))
[ 2843.128605][ C3] ? nexthop_mpath_fill_node.constprop.0 (net/ipv4/fib_semantics.c:223)
[ 2843.128836][ C3] rcu_do_batch (./include/linux/rcupdate.h:341 kernel/rcu/tree.c:2607)
[ 2843.129226][ C3] ? trace_rcu_batch_end (kernel/rcu/tree.c:2529)
[ 2843.129416][ C3] ? _raw_spin_unlock_irqrestore (./include/linux/spinlock_api_smp.h:151 kernel/locking/spinlock.c:194)
[ 2843.129647][ C3] ? lockdep_hardirqs_on (kernel/locking/lockdep.c:4472)
[ 2843.129832][ C3] ? _raw_spin_unlock_irqrestore (./arch/x86/include/asm/preempt.h:104 ./include/linux/spinlock_api_smp.h:152 kernel/locking/spinlock.c:194)
[ 2843.130166][ C3] rcu_core (kernel/rcu/tree.c:2859)
[ 2843.130405][ C3] handle_softirqs (./arch/x86/include/asm/jump_label.h:37 ./include/trace/events/irq.h:142 kernel/softirq.c:623)
[ 2843.130590][ C3] __irq_exit_rcu (kernel/softirq.c:657 kernel/softirq.c:496 kernel/softirq.c:723)
[ 2843.130775][ C3] irq_exit_rcu (kernel/softirq.c:741)
[ 2843.131019][ C3] sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1056 arch/x86/kernel/apic/apic.c:1056)
[ 2843.131203][ C3]
[ 2843.131300][ C3]
[ 2843.131394][ C3] asm_sysvec_apic_timer_interrupt (./arch/x86/include/asm/idtentry.h:697)
[ 2843.131720][ C3] RIP: 0010:pv_native_safe_halt (arch/x86/kernel/paravirt.c:82)
[ 2843.131911][ C3] Code: 48 8b 3d 34 31 90 02 e8 1f 00 00 00 48 2b 05 28 07 a9 00 c3 0f 1f 80 00 00 00 00 f3 0f 1e fa eb 07 0f 00 2d d3 d6 28 00 fb f4 0f 1f 40 d6 41 54 55 53 48 89 fb 48 83 ec 10 8b 17 83 e2 fe 41
All code
========
0: 48 8b 3d 34 31 90 02 mov 0x2903134(%rip),%rdi # 0x290313b
7: e8 1f 00 00 00 call 0x2b
c: 48 2b 05 28 07 a9 00 sub 0xa90728(%rip),%rax # 0xa9073b
13: c3 ret
14: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
1b: f3 0f 1e fa endbr64
1f: eb 07 jmp 0x28
21: 0f 00 2d d3 d6 28 00 verw 0x28d6d3(%rip) # 0x28d6fb
28: fb sti
29: f4 hlt
2a:* c3 ret <-- trapping instruction
2b: 0f 1f 40 d6 nopl -0x2a(%rax)
2f: 41 54 push %r12
31: 55 push %rbp
32: 53 push %rbx
33: 48 89 fb mov %rdi,%rbx
36: 48 83 ec 10 sub $0x10,%rsp
3a: 8b 17 mov (%rdi),%edx
3c: 83 e2 fe and $0xfffffffe,%edx
3f: 41 rex.B
Code starting with the faulting instruction
===========================================
0: c3 ret
1: 0f 1f 40 d6 nopl -0x2a(%rax)
5: 41 54 push %r12
7: 55 push %rbp
8: 53 push %rbx
9: 48 89 fb mov %rdi,%rbx
c: 48 83 ec 10 sub $0x10,%rsp
10: 8b 17 mov (%rdi),%edx
12: 83 e2 fe and $0xfffffffe,%edx
15: 41 rex.B
[ 2843.132675][ C3] RSP: 0018:ffffc90000157dd8 EFLAGS: 00000206
[ 2843.132911][ C3] RAX: 0000000003d79cbd RBX: 1ffff9200002afbf RCX: ffffffffa900a255
[ 2843.133186][ C3] RDX: 0000000000000000 RSI: ffffffffa99fa925 RDI: ffffffffa946a600
[ 2843.133568][ C3] RBP: 0000000000000000 R08: 0000000000000001 R09: ffffed100da3631a
[ 2843.133848][ C3] R10: ffff88806d1b18d3 R11: ffff888001ae5090 R12: 0000000000000000
[ 2843.134121][ C3] R13: ffff888001ae4640 R14: dffffc0000000000 R15: 0000000000000000
[ 2843.134404][ C3] ? ct_kernel_exit.constprop.0 (kernel/context_tracking.c:146)
[ 2843.134638][ C3] default_idle (./arch/x86/include/asm/paravirt.h:107 arch/x86/kernel/process.c:767)
[ 2843.134776][ C3] default_idle_call (./include/linux/cpuidle.h:143 kernel/sched/idle.c:123)
[ 2843.134966][ C3] cpuidle_idle_call (kernel/sched/idle.c:192)
[ 2843.135149][ C3] ? arch_cpu_idle_exit+0x40/0x40
[ 2843.135433][ C3] ? trace_irq_enable.constprop.0 (./arch/x86/include/asm/bitops.h:222 ./arch/x86/include/asm/bitops.h:233 ./include/asm-generic/bitops/instrumented-non-atomic.h:142 ./include/linux/cpumask.h:647 ./include/linux/cpumask.h:1229 ./include/trace/events/preemptirq.h:40)
[ 2843.135661][ C3] ? tsc_verify_tsc_adjust (arch/x86/kernel/tsc_sync.c:60)
[ 2843.135947][ C3] do_idle (kernel/sched/idle.c:332)
[ 2843.136088][ C3] cpu_startup_entry (kernel/sched/idle.c:429 (discriminator 1))
[ 2843.136281][ C3] start_secondary (arch/x86/kernel/smpboot.c:200 arch/x86/kernel/smpboot.c:280)
[ 2843.136465][ C3] ? set_cpu_sibling_map (arch/x86/kernel/smpboot.c:230)
Finger prints:
dst_dev_put:fib_nh_common_release:free_fib_info_rcu:rcu_do_batch:rcu_core
print_report:kasan_report:dst_dev_put:fib_nh_common_release:free_fib_info_rcu