======================================
| [ 887.039241][ C0] ==================================================================
| [ 887.039450][ C0] BUG: KASAN: slab-use-after-free in dst_dev_put (net/core/dst.c:146)
| [ 887.039617][ C0] Read of size 8 at addr ff11000014132040 by task swapper/0/0
| [ 887.039768][ C0]
[ 887.039828][ C0] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[ 887.039830][ C0] Call Trace:
[ 887.039831][ C0]
[ 887.039833][ C0] dump_stack_lvl (lib/dump_stack.c:122)
[ 887.039839][ C0] print_address_description.constprop.0 (mm/kasan/report.c:379)
[ 887.039843][ C0] print_report (mm/kasan/report.c:483)
[ 887.039845][ C0] ? dst_dev_put (net/core/dst.c:146)
[ 887.039847][ C0] ? __virt_addr_valid (./include/linux/rcupdate.h:981 (discriminator 3) ./include/linux/mmzone.h:2197 (discriminator 3) arch/x86/mm/physaddr.c:54 (discriminator 3))
[ 887.039851][ C0] ? dst_dev_put (net/core/dst.c:146)
[ 887.039853][ C0] kasan_report (mm/kasan/report.c:597)
[ 887.039856][ C0] ? dst_dev_put (net/core/dst.c:146)
[ 887.039859][ C0] dst_dev_put (net/core/dst.c:146)
[ 887.039861][ C0] rt_fibinfo_free_cpus.part.0 (net/ipv4/fib_semantics.c:196)
[ 887.039864][ C0] fib_nh_common_release (net/ipv4/fib_semantics.c:141 net/ipv4/fib_semantics.c:207)
[ 887.039866][ C0] free_fib_info_rcu (./include/net/nexthop.h:480 net/ipv4/fib_semantics.c:229)
[ 887.039868][ C0] ? rcu_do_batch (kernel/rcu/tree.c:2605)
[ 887.039872][ C0] rcu_do_batch (./include/linux/rcupdate.h:341 (discriminator 1) kernel/rcu/tree.c:2607 (discriminator 1))
[ 887.039874][ C0] ? rcu_start_this_gp (kernel/rcu/tree.c:1018)
[ 887.039877][ C0] ? trace_rcu_batch_end (kernel/rcu/tree.c:2529)
[ 887.039879][ C0] ? trace_irq_enable.constprop.0 (./include/trace/events/preemptirq.h:40 (discriminator 33))
[ 887.039882][ C0] ? lockdep_hardirqs_on_prepare.part.0 (kernel/locking/lockdep.c:470 (discriminator 6) kernel/locking/lockdep.c:4411 (discriminator 6))
[ 887.039884][ C0] ? lockdep_hardirqs_on (kernel/locking/lockdep.c:4473)
[ 887.039888][ C0] ? _raw_spin_unlock_irqrestore (./arch/x86/include/asm/irqflags.h:26 ./arch/x86/include/asm/irqflags.h:109 ./arch/x86/include/asm/irqflags.h:151 ./include/linux/spinlock_api_smp.h:151 kernel/locking/spinlock.c:194)
[ 887.039891][ C0] ? _raw_spin_unlock_irqrestore (./include/linux/spinlock_api_smp.h:152 (discriminator 3) kernel/locking/spinlock.c:194 (discriminator 3))
[ 887.039893][ C0] rcu_core (kernel/rcu/tree.c:2859)
[ 887.039894][ C0] handle_softirqs (./arch/x86/include/asm/jump_label.h:37 ./include/trace/events/irq.h:142 kernel/softirq.c:623)
[ 887.039898][ C0] ? tasklet_unlock_wait (kernel/softirq.c:580)
[ 887.039899][ C0] ? __flush_smp_call_function_queue (kernel/smp.c:137 kernel/smp.c:593)
[ 887.039903][ C0] irq_exit_rcu (kernel/softirq.c:657 kernel/softirq.c:496 kernel/softirq.c:723 kernel/softirq.c:739)
[ 887.039905][ C0] sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1056 (discriminator 47) arch/x86/kernel/apic/apic.c:1056 (discriminator 47))
[ 887.039906][ C0]
[ 887.039907][ C0]
[ 887.039908][ C0] asm_sysvec_apic_timer_interrupt (./arch/x86/include/asm/idtentry.h:697)
[ 887.039911][ C0] RIP: 0010:pv_native_safe_halt (arch/x86/kernel/paravirt.c:82)
[ 887.039913][ C0] Code: 48 8b 3d c4 ac 71 02 e8 1f 00 00 00 48 2b 05 b8 22 9b 00 c3 0f 1f 80 00 00 00 00 f3 0f 1e fa eb 07 0f 00 2d 23 83 19 00 fb f4 0f 1f 40 d6 48 83 ec 20 8b 17 49 89 f8 83 e2 fe 41 89 d2 0f 01
All code
========
0: 48 8b 3d c4 ac 71 02 mov 0x271acc4(%rip),%rdi # 0x271accb
7: e8 1f 00 00 00 call 0x2b
c: 48 2b 05 b8 22 9b 00 sub 0x9b22b8(%rip),%rax # 0x9b22cb
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 23 83 19 00 verw 0x198323(%rip) # 0x19834b
28: fb sti
29: f4 hlt
2a:* c3 ret <-- trapping instruction
2b: 0f 1f 40 d6 nopl -0x2a(%rax)
2f: 48 83 ec 20 sub $0x20,%rsp
33: 8b 17 mov (%rdi),%edx
35: 49 89 f8 mov %rdi,%r8
38: 83 e2 fe and $0xfffffffe,%edx
3b: 41 89 d2 mov %edx,%r10d
3e: 0f .byte 0xf
3f: 01 .byte 0x1
Code starting with the faulting instruction
===========================================
0: c3 ret
1: 0f 1f 40 d6 nopl -0x2a(%rax)
5: 48 83 ec 20 sub $0x20,%rsp
9: 8b 17 mov (%rdi),%edx
b: 49 89 f8 mov %rdi,%r8
e: 83 e2 fe and $0xfffffffe,%edx
11: 41 89 d2 mov %edx,%r10d
14: 0f .byte 0xf
15: 01 .byte 0x1
[ 887.039915][ C0] RSP: 0018:ffffffff99e07e00 EFLAGS: 00000282
[ 887.039918][ C0] RAX: 000000000221fa29 RBX: ffffffff99e32580 RCX: ffffffff96884c3f
[ 887.039920][ C0] RDX: ffffffff99e32580 RSI: ffffffff9960ff26 RDI: ffffffff99069f80
[ 887.039921][ C0] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000001
[ 887.039922][ C0] R10: 0000000000000000 R11: 0000000000000001 R12: 1ffffffff33c0fc3
[ 887.039923][ C0] R13: 0000000000000000 R14: dffffc0000000000 R15: 0000000000014770
[ 887.039924][ C0] ? cpuidle_idle_call (kernel/sched/idle.c:192)
[ 887.039927][ C0] default_idle (./arch/x86/include/asm/paravirt.h:107 arch/x86/kernel/process.c:767)
[ 887.039929][ C0] default_idle_call (./include/linux/cpuidle.h:143 (discriminator 1) kernel/sched/idle.c:123 (discriminator 1))
[ 887.039931][ C0] cpuidle_idle_call (kernel/sched/idle.c:192)
[ 887.039933][ C0] ? arch_cpu_idle_exit+0x40/0x40
[ 887.039934][ C0] ? mark_tsc_async_resets (arch/x86/kernel/tsc_sync.c:52)
[ 887.039937][ C0] ? trace_irq_enable.constprop.0 (./include/trace/events/preemptirq.h:40 (discriminator 33))
[ 887.039939][ C0] do_idle (kernel/sched/idle.c:332)
[ 887.039940][ C0] cpu_startup_entry (kernel/sched/idle.c:429)
[ 887.039942][ C0] rest_init (init/main.c:757)
[ 887.039944][ C0] start_kernel (init/main.c:1111)
[ 887.039948][ C0] x86_64_start_reservations (arch/x86/kernel/head64.c:310)
[ 887.039950][ C0] x86_64_start_kernel (??:?)
[ 887.039952][ C0] common_startup_64 (arch/x86/kernel/head_64.S:419)
| [ 887.054756][ C0] Disabling lock debugging due to kernel taint
| [ 887.054893][ C0] Oops: general protection fault, probably for non-canonical address 0xe0d57c3580000008: 0000 [#1] SMP KASAN
| [ 887.055110][ C0] KASAN: maybe wild-memory-access in range [0x06ac01ac00000040-0x06ac01ac00000047]
| [ 887.055479][ C0] Tainted: [B]=BAD_PAGE
[ 887.055554][ C0] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[ 887.055677][ C0] RIP: 0010:dst_dev_put (net/core/dst.c:149)
[ 887.055778][ C0] Code: fc ff df 48 c1 ea 03 80 3c 02 00 0f 85 2c 02 00 00 48 ba 00 00 00 00 00 fc ff df 48 8b 43 08 48 8d 78 38 48 89 f9 48 c1 e9 03 <80> 3c 11 00 0f 85 d8 01 00 00 48 8b 40 38 48 85 c0 74 08 48 89 ee
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 2c 02 test %ebp,(%rdx,%rax,1)
f: 00 00 add %al,(%rax)
11: 48 ba 00 00 00 00 00 movabs $0xdffffc0000000000,%rdx
18: fc ff df
1b: 48 8b 43 08 mov 0x8(%rbx),%rax
1f: 48 8d 78 38 lea 0x38(%rax),%rdi
23: 48 89 f9 mov %rdi,%rcx
26: 48 c1 e9 03 shr $0x3,%rcx
2a:* 80 3c 11 00 cmpb $0x0,(%rcx,%rdx,1) <-- trapping instruction
2e: 0f 85 d8 01 00 00 jne 0x20c
34: 48 8b 40 38 mov 0x38(%rax),%rax
38: 48 85 c0 test %rax,%rax
3b: 74 08 je 0x45
3d: 48 89 ee mov %rbp,%rsi
Code starting with the faulting instruction
===========================================
0: 80 3c 11 00 cmpb $0x0,(%rcx,%rdx,1)
4: 0f 85 d8 01 00 00 jne 0x1e2
a: 48 8b 40 38 mov 0x38(%rax),%rax
e: 48 85 c0 test %rax,%rax
11: 74 08 je 0x1b
13: 48 89 ee mov %rbp,%rsi
[ 887.056114][ C0] RSP: 0018:ffa0000000007d10 EFLAGS: 00010213
[ 887.056504][ C0] RAX: 06ac01ac0000000c RBX: ff11000014132040 RCX: 00d5803580000008
[ 887.056646][ C0] RDX: dffffc0000000000 RSI: 0000000000000008 RDI: 06ac01ac00000044
[ 887.056791][ C0] RBP: ff1100000f522ea8 R08: 0000000000000008 R09: fffffbfff368c2c4
[ 887.056936][ C0] R10: fffffbfff368c2c5 R11: 0000000000000000 R12: 1fe22000014f014d
[ 887.057077][ C0] R13: 0000000000000002 R14: 0000000000000001 R15: ff1100000a780a70
[ 887.057268][ C0] FS: 0000000000000000(0000) GS:ff110000d0e0b000(0000) knlGS:0000000000000000
[ 887.057454][ C0] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 887.057573][ C0] CR2: 0000560f15e700c0 CR3: 000000001b748004 CR4: 0000000000771ef0
[ 887.057769][ C0] PKRU: 55555554
[ 887.057845][ C0] Call Trace:
[ 887.057917][ C0]
[ 887.057966][ C0] rt_fibinfo_free_cpus.part.0 (net/ipv4/fib_semantics.c:196)
[ 887.058068][ C0] fib_nh_common_release (net/ipv4/fib_semantics.c:141 net/ipv4/fib_semantics.c:207)
[ 887.058209][ C0] free_fib_info_rcu (./include/net/nexthop.h:480 net/ipv4/fib_semantics.c:229)
[ 887.058304][ C0] ? rcu_do_batch (kernel/rcu/tree.c:2605)
[ 887.058406][ C0] rcu_do_batch (./include/linux/rcupdate.h:341 (discriminator 1) kernel/rcu/tree.c:2607 (discriminator 1))
[ 887.058501][ C0] ? rcu_start_this_gp (kernel/rcu/tree.c:1018)
[ 887.058686][ C0] ? trace_rcu_batch_end (kernel/rcu/tree.c:2529)
[ 887.058782][ C0] ? trace_irq_enable.constprop.0 (./include/trace/events/preemptirq.h:40 (discriminator 33))
[ 887.058899][ C0] ? lockdep_hardirqs_on_prepare.part.0 (kernel/locking/lockdep.c:470 (discriminator 6) kernel/locking/lockdep.c:4411 (discriminator 6))
[ 887.059016][ C0] ? lockdep_hardirqs_on (kernel/locking/lockdep.c:4473)
[ 887.059111][ C0] ? _raw_spin_unlock_irqrestore (./arch/x86/include/asm/irqflags.h:26 ./arch/x86/include/asm/irqflags.h:109 ./arch/x86/include/asm/irqflags.h:151 ./include/linux/spinlock_api_smp.h:151 kernel/locking/spinlock.c:194)
[ 887.059234][ C0] ? _raw_spin_unlock_irqrestore (./include/linux/spinlock_api_smp.h:152 (discriminator 3) kernel/locking/spinlock.c:194 (discriminator 3))
[ 887.059350][ C0] rcu_core (kernel/rcu/tree.c:2859)
[ 887.059473][ C0] handle_softirqs (./arch/x86/include/asm/jump_label.h:37 ./include/trace/events/irq.h:142 kernel/softirq.c:623)
[ 887.059568][ C0] ? tasklet_unlock_wait (kernel/softirq.c:580)
[ 887.059662][ C0] ? __flush_smp_call_function_queue (kernel/smp.c:137 kernel/smp.c:593)
[ 887.059781][ C0] irq_exit_rcu (kernel/softirq.c:657 kernel/softirq.c:496 kernel/softirq.c:723 kernel/softirq.c:739)
[ 887.059898][ C0] sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1056 (discriminator 47) arch/x86/kernel/apic/apic.c:1056 (discriminator 47))
[ 887.059994][ C0]
[ 887.060043][ C0]
[ 887.060089][ C0] asm_sysvec_apic_timer_interrupt (./arch/x86/include/asm/idtentry.h:697)
[ 887.060208][ C0] RIP: 0010:pv_native_safe_halt (arch/x86/kernel/paravirt.c:82)
[ 887.060353][ C0] Code: 48 8b 3d c4 ac 71 02 e8 1f 00 00 00 48 2b 05 b8 22 9b 00 c3 0f 1f 80 00 00 00 00 f3 0f 1e fa eb 07 0f 00 2d 23 83 19 00 fb f4 0f 1f 40 d6 48 83 ec 20 8b 17 49 89 f8 83 e2 fe 41 89 d2 0f 01
All code
========
0: 48 8b 3d c4 ac 71 02 mov 0x271acc4(%rip),%rdi # 0x271accb
7: e8 1f 00 00 00 call 0x2b
c: 48 2b 05 b8 22 9b 00 sub 0x9b22b8(%rip),%rax # 0x9b22cb
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 23 83 19 00 verw 0x198323(%rip) # 0x19834b
28: fb sti
29: f4 hlt
2a:* c3 ret <-- trapping instruction
2b: 0f 1f 40 d6 nopl -0x2a(%rax)
2f: 48 83 ec 20 sub $0x20,%rsp
33: 8b 17 mov (%rdi),%edx
35: 49 89 f8 mov %rdi,%r8
38: 83 e2 fe and $0xfffffffe,%edx
3b: 41 89 d2 mov %edx,%r10d
3e: 0f .byte 0xf
3f: 01 .byte 0x1
Code starting with the faulting instruction
===========================================
0: c3 ret
1: 0f 1f 40 d6 nopl -0x2a(%rax)
5: 48 83 ec 20 sub $0x20,%rsp
9: 8b 17 mov (%rdi),%edx
b: 49 89 f8 mov %rdi,%r8
e: 83 e2 fe and $0xfffffffe,%edx
11: 41 89 d2 mov %edx,%r10d
14: 0f .byte 0xf
15: 01 .byte 0x1
[ 887.060742][ C0] RSP: 0018:ffffffff99e07e00 EFLAGS: 00000282
[ 887.060860][ C0] RAX: 000000000221fa29 RBX: ffffffff99e32580 RCX: ffffffff96884c3f
[ 887.061002][ C0] RDX: ffffffff99e32580 RSI: ffffffff9960ff26 RDI: ffffffff99069f80
[ 887.061189][ C0] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000001
[ 887.061339][ C0] R10: 0000000000000000 R11: 0000000000000001 R12: 1ffffffff33c0fc3
[ 887.061486][ C0] R13: 0000000000000000 R14: dffffc0000000000 R15: 0000000000014770
[ 887.061677][ C0] ? cpuidle_idle_call (kernel/sched/idle.c:192)
[ 887.061772][ C0] default_idle (./arch/x86/include/asm/paravirt.h:107 arch/x86/kernel/process.c:767)
[ 887.061845][ C0] default_idle_call (./include/linux/cpuidle.h:143 (discriminator 1) kernel/sched/idle.c:123 (discriminator 1))
[ 887.061938][ C0] cpuidle_idle_call (kernel/sched/idle.c:192)
[ 887.062037][ C0] ? arch_cpu_idle_exit+0x40/0x40
[ 887.062132][ C0] ? mark_tsc_async_resets (arch/x86/kernel/tsc_sync.c:52)
[ 887.062226][ C0] ? trace_irq_enable.constprop.0 (./include/trace/events/preemptirq.h:40 (discriminator 33))
[ 887.062343][ C0] do_idle (kernel/sched/idle.c:332)
[ 887.062465][ C0] cpu_startup_entry (kernel/sched/idle.c:429)
[ 887.062562][ C0] rest_init (init/main.c:757)
[ 887.062633][ C0] start_kernel (init/main.c:1111)
[ 887.062728][ C0] x86_64_start_reservations (arch/x86/kernel/head64.c:310)
[ 887.062870][ C0] x86_64_start_kernel (??:?)
Finger prints:
print_report:kasan_report:dst_dev_put:fib_nh_common_release:free_fib_info_rcu
dst_dev_put:fib_nh_common_release:free_fib_info_rcu:rcu_do_batch:rcu_core