==================================================================
BUG: KASAN: use-after-free in decode_session6+0xfc3/0x17f0 net/xfrm/xfrm_policy.c:3373
Read of size 1 at addr ffff88802529bf70 by task swapper/0/0
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.19.0-rc3-syzkaller-00048-gde5c208d533a #0
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014
Call Trace:
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106
print_address_description.constprop.0.cold+0xeb/0x467 mm/kasan/report.c:313
print_report mm/kasan/report.c:429 [inline]
kasan_report.cold+0xf4/0x1c6 mm/kasan/report.c:491
decode_session6+0xfc3/0x17f0 net/xfrm/xfrm_policy.c:3373
__xfrm_decode_session+0x50/0xb0 net/xfrm/xfrm_policy.c:3479
xfrm_decode_session include/net/xfrm.h:1160 [inline]
vti6_tnl_xmit+0x419/0x1fe0 net/ipv6/ip6_vti.c:577
__netdev_start_xmit include/linux/netdevice.h:4805 [inline]
netdev_start_xmit include/linux/netdevice.h:4819 [inline]
xmit_one net/core/dev.c:3588 [inline]
dev_hard_start_xmit+0x188/0x880 net/core/dev.c:3604
sch_direct_xmit+0x19f/0xbe0 net/sched/sch_generic.c:342
qdisc_restart net/sched/sch_generic.c:407 [inline]
__qdisc_run+0x4c0/0x1720 net/sched/sch_generic.c:415
__dev_xmit_skb net/core/dev.c:3878 [inline]
__dev_queue_xmit+0x217a/0x3900 net/core/dev.c:4219
dev_queue_xmit include/linux/netdevice.h:2994 [inline]
neigh_connected_output+0x3c0/0x520 net/core/neighbour.c:1557
neigh_output include/net/neighbour.h:549 [inline]
ip6_finish_output2+0x564/0x1520 net/ipv6/ip6_output.c:134
__ip6_finish_output net/ipv6/ip6_output.c:195 [inline]
ip6_finish_output+0x844/0x1170 net/ipv6/ip6_output.c:206
NF_HOOK_COND include/linux/netfilter.h:296 [inline]
ip6_output+0x1ed/0x540 net/ipv6/ip6_output.c:227
dst_output include/net/dst.h:451 [inline]
NF_HOOK include/linux/netfilter.h:307 [inline]
ndisc_send_skb+0xa64/0x1740 net/ipv6/ndisc.c:507
ndisc_send_rs+0x12e/0x6f0 net/ipv6/ndisc.c:717
addrconf_rs_timer+0x3f2/0x820 net/ipv6/addrconf.c:3931
call_timer_fn+0x1a5/0x6b0 kernel/time/timer.c:1474
expire_timers kernel/time/timer.c:1519 [inline]
__run_timers.part.0+0x679/0xa80 kernel/time/timer.c:1790
__run_timers kernel/time/timer.c:1768 [inline]
run_timer_softirq+0xb3/0x1d0 kernel/time/timer.c:1803
__do_softirq+0x29b/0x9c2 kernel/softirq.c:571
invoke_softirq kernel/softirq.c:445 [inline]
__irq_exit_rcu+0x123/0x180 kernel/softirq.c:650
irq_exit_rcu+0x5/0x20 kernel/softirq.c:662
sysvec_apic_timer_interrupt+0x93/0xc0 arch/x86/kernel/apic/apic.c:1106
asm_sysvec_apic_timer_interrupt+0x1b/0x20 arch/x86/include/asm/idtentry.h:649
RIP: 0010:default_idle+0xb/0x10 arch/x86/kernel/process.c:731
Code: ff ff ff 48 89 df e8 f4 1e 4c f8 e9 55 ff ff ff 4c 89 e7 e8 e7 1e 4c f8 eb 96 0f 1f 44 00 00 eb 07 0f 00 2d 17 0b 4d 00 fb f4 cc cc cc cc 41 55 41 54 55 48 89 fd 53 e8 82 fb ff f7 e8 7d 0d
RSP: 0018:ffffffff8ba07e18 EFLAGS: 00000202
RAX: 0000000000da7e5b RBX: ffffffff8babc940 RCX: ffffffff8976adf1
RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000
RBP: 0000000000000000 R08: 0000000000000001 R09: ffff88802c83afd3
R10: ffffed10059075fa R11: 0000000000000001 R12: fffffbfff1757928
R13: 0000000000000000 R14: ffffffff8dbade10 R15: 0000000000000000
default_idle_call+0x80/0xc0 kernel/sched/idle.c:109
cpuidle_idle_call kernel/sched/idle.c:191 [inline]
do_idle+0x401/0x590 kernel/sched/idle.c:303
cpu_startup_entry+0x14/0x20 kernel/sched/idle.c:400
rest_init+0x169/0x270 init/main.c:726
arch_call_rest_init+0xf/0x14 init/main.c:882
start_kernel+0x46e/0x48f init/main.c:1137
secondary_startup_64_no_verify+0xce/0xdb
The buggy address belongs to the physical page:
page:ffffea000094a6c0 refcount:0 mapcount:0 mapping:0000000000000000 index:0x1 pfn:0x2529b
flags: 0xfff00000000000(node=0|zone=1|lastcpupid=0x7ff)
raw: 00fff00000000000 dead000000000100 dead000000000122 0000000000000000
raw: 0000000000000001 0000000000000000 00000000ffffffff 0000000000000000
page dumped because: kasan: bad access detected
page_owner tracks the page as freed
page last allocated via order 0, migratetype Movable, gfp_mask 0x152c4a(GFP_NOFS|__GFP_HIGHMEM|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_HARDWALL|__GFP_MOVABLE), pid 3693, tgid 3688 (syz-fuzzer), ts 2962252089193, free_ts 2962268547640
prep_new_page mm/page_alloc.c:2456 [inline]
get_page_from_freelist+0x1290/0x3b70 mm/page_alloc.c:4198
__alloc_pages_slowpath.constprop.0+0x2e9/0x2160 mm/page_alloc.c:4973
__alloc_pages+0x436/0x510 mm/page_alloc.c:5439
alloc_pages+0x1aa/0x310 mm/mempolicy.c:2272
folio_alloc+0x1c/0x70 mm/mempolicy.c:2282
filemap_alloc_folio+0x8e/0xb0 mm/filemap.c:996
page_cache_ra_unbounded+0x1af/0x550 mm/readahead.c:242
do_page_cache_ra mm/readahead.c:293 [inline]
page_cache_ra_order+0x680/0x940 mm/readahead.c:548
do_sync_mmap_readahead mm/filemap.c:3047 [inline]
filemap_fault+0x1605/0x24e0 mm/filemap.c:3139
__do_fault+0x10d/0x650 mm/memory.c:4165
do_read_fault mm/memory.c:4511 [inline]
do_fault mm/memory.c:4640 [inline]
handle_pte_fault mm/memory.c:4903 [inline]
__handle_mm_fault+0x2739/0x3f50 mm/memory.c:5042
handle_mm_fault+0x1c8/0x790 mm/memory.c:5140
do_user_addr_fault+0x489/0x11c0 arch/x86/mm/fault.c:1397
handle_page_fault arch/x86/mm/fault.c:1484 [inline]
exc_page_fault+0x9e/0x180 arch/x86/mm/fault.c:1540
asm_exc_page_fault+0x27/0x30 arch/x86/include/asm/idtentry.h:570
page last free stack trace:
reset_page_owner include/linux/page_owner.h:24 [inline]
free_pages_prepare mm/page_alloc.c:1371 [inline]
free_pcp_prepare+0x549/0xd20 mm/page_alloc.c:1421
free_unref_page_prepare mm/page_alloc.c:3343 [inline]
free_unref_page_list+0x16f/0xf80 mm/page_alloc.c:3475
shrink_page_list+0x2d27/0x3a50 mm/vmscan.c:1979
shrink_inactive_list mm/vmscan.c:2386 [inline]
shrink_list mm/vmscan.c:2616 [inline]
shrink_lruvec+0xccf/0x2620 mm/vmscan.c:2933
shrink_node_memcgs mm/vmscan.c:3122 [inline]
shrink_node+0x84a/0x1db0 mm/vmscan.c:3245
kswapd_shrink_node mm/vmscan.c:4024 [inline]
balance_pgdat+0x8ef/0x1570 mm/vmscan.c:4215
kswapd+0x7a5/0xf80 mm/vmscan.c:4475
kthread+0x2e9/0x3a0 kernel/kthread.c:376
ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:302
Memory state around the buggy address:
ffff88802529be00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ffff88802529be80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>ffff88802529bf00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
^
ffff88802529bf80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ffff88802529c000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
==================================================================
----------------
Code disassembly (best guess), 3 bytes skipped:
0: 48 89 df mov %rbx,%rdi
3: e8 f4 1e 4c f8 callq 0xf84c1efc
8: e9 55 ff ff ff jmpq 0xffffff62
d: 4c 89 e7 mov %r12,%rdi
10: e8 e7 1e 4c f8 callq 0xf84c1efc
15: eb 96 jmp 0xffffffad
17: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
1c: eb 07 jmp 0x25
1e: 0f 00 2d 17 0b 4d 00 verw 0x4d0b17(%rip) # 0x4d0b3c
25: fb sti
26: f4 hlt
* 27: c3 retq <-- trapping instruction
28: cc int3
29: cc int3
2a: cc int3
2b: cc int3
2c: 41 55 push %r13
2e: 41 54 push %r12
30: 55 push %rbp
31: 48 89 fd mov %rdi,%rbp
34: 53 push %rbx
35: e8 82 fb ff f7 callq 0xf7fffbbc
3a: e8 .byte 0xe8
3b: 7d 0d jge 0x4a