------------[ cut here ]------------
refcount_t: underflow; use-after-free.
WARNING: CPU: 0 PID: 7813 at lib/refcount.c:28 refcount_warn_saturate+0x15a/0x1d0 lib/refcount.c:28
Modules linked in:
CPU: 0 UID: 0 PID: 7813 Comm: syz.2.513 Not tainted 6.12.0-syzkaller-09435-g2c22dc1ee3a1 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024
RIP: 0010:refcount_warn_saturate+0x15a/0x1d0 lib/refcount.c:28
Code: a0 31 60 8c e8 97 af 9e fc 90 0f 0b 90 90 eb 99 e8 1b 07 de fc c6 05 1c 7b 4f 0b 01 90 48 c7 c7 00 32 60 8c e8 77 af 9e fc 90 <0f> 0b 90 90 e9 76 ff ff ff e8 f8 06 de fc c6 05 f6 7a 4f 0b 01 90
RSP: 0018:ffffc90000007640 EFLAGS: 00010246
RAX: 544f2b47fbe61300 RBX: ffff888033e30ea4 RCX: ffff88802e94bc00
RDX: 0000000000000100 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000000003 R08: ffffffff815687d2 R09: fffffbfff1cfa8a0
R10: dffffc0000000000 R11: fffffbfff1cfa8a0 R12: ffff8880288a0800
R13: ffff888033e30ea4 R14: ffff8880288a0800 R15: ffff888029344618
FS: 0000000000000000(0000) GS:ffff8880b8600000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fa9413b4d58 CR3: 0000000054534000 CR4: 00000000003526f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
kfree_skb_reason include/linux/skbuff.h:1263 [inline]
kfree_skb include/linux/skbuff.h:1272 [inline]
j1939_session_skb_drop_old net/can/j1939/transport.c:347 [inline]
j1939_xtp_rx_cts_one net/can/j1939/transport.c:1445 [inline]
j1939_xtp_rx_cts+0x552/0xc70 net/can/j1939/transport.c:1484
j1939_tp_cmd_recv net/can/j1939/transport.c:2089 [inline]
j1939_tp_recv+0x8ae/0x1050 net/can/j1939/transport.c:2161
j1939_can_recv+0x732/0xb20 net/can/j1939/main.c:108
deliver net/can/af_can.c:573 [inline]
can_rcv_filter+0x359/0x7f0 net/can/af_can.c:607
can_receive+0x327/0x480 net/can/af_can.c:664
can_rcv+0x144/0x260 net/can/af_can.c:688
__netif_receive_skb_one_core net/core/dev.c:5672 [inline]
__netif_receive_skb+0x2e0/0x650 net/core/dev.c:5785
process_backlog+0x662/0x15b0 net/core/dev.c:6117
__napi_poll+0xcb/0x490 net/core/dev.c:6877
napi_poll net/core/dev.c:6946 [inline]
net_rx_action+0x89b/0x1240 net/core/dev.c:7068
handle_softirqs+0x2c5/0x980 kernel/softirq.c:554
__do_softirq kernel/softirq.c:588 [inline]
invoke_softirq kernel/softirq.c:428 [inline]
__irq_exit_rcu+0xf7/0x220 kernel/softirq.c:655
irq_exit_rcu+0x9/0x30 kernel/softirq.c:671
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1049 [inline]
sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1049
asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702
RIP: 0010:lock_acquire+0x264/0x550 kernel/locking/lockdep.c:5853
Code: 2b 00 74 08 4c 89 f7 e8 4a 81 8c 00 f6 44 24 61 02 0f 85 85 01 00 00 41 f7 c7 00 02 00 00 74 01 fb 48 c7 44 24 40 0e 36 e0 45 <4b> c7 44 25 00 00 00 00 00 43 c7 44 25 09 00 00 00 00 43 c7 44 25
RSP: 0018:ffffc9001bf2f100 EFLAGS: 00000206
RAX: 0000000000000001 RBX: 1ffff920037e5e2c RCX: ffff88802e94c6d8
RDX: dffffc0000000000 RSI: ffffffff8c0aea80 RDI: ffffffff8c6076a0
RBP: ffffc9001bf2f258 R08: ffffffff942e9887 R09: 1ffffffff285d310
R10: dffffc0000000000 R11: fffffbfff285d311 R12: 1ffff920037e5e28
R13: dffffc0000000000 R14: ffffc9001bf2f160 R15: 0000000000000246
rcu_lock_acquire include/linux/rcupdate.h:337 [inline]
rcu_read_lock include/linux/rcupdate.h:849 [inline]
page_ext_get+0x3d/0x2a0 mm/page_ext.c:525
page_table_check_clear+0x4b/0x550 mm/page_table_check.c:74
get_and_clear_full_ptes include/linux/pgtable.h:705 [inline]
zap_present_folio_ptes mm/memory.c:1502 [inline]
zap_present_ptes mm/memory.c:1585 [inline]
zap_pte_range mm/memory.c:1627 [inline]
zap_pmd_range mm/memory.c:1753 [inline]
zap_pud_range mm/memory.c:1782 [inline]
zap_p4d_range mm/memory.c:1803 [inline]
unmap_page_range+0x2b41/0x4230 mm/memory.c:1824
unmap_vmas+0x3cc/0x5f0 mm/memory.c:1914
exit_mmap+0x275/0xc40 mm/mmap.c:1667
__mmput+0x115/0x380 kernel/fork.c:1347
exit_mm+0x220/0x310 kernel/exit.c:570
do_exit+0x9b2/0x28e0 kernel/exit.c:925
do_group_exit+0x207/0x2c0 kernel/exit.c:1087
get_signal+0x16b2/0x1750 kernel/signal.c:3016
arch_do_signal_or_restart+0x96/0x860 arch/x86/kernel/signal.c:337
exit_to_user_mode_loop kernel/entry/common.c:111 [inline]
exit_to_user_mode_prepare include/linux/entry-common.h:329 [inline]
__syscall_exit_to_user_mode_work kernel/entry/common.c:207 [inline]
syscall_exit_to_user_mode+0xce/0x340 kernel/entry/common.c:218
do_syscall_64+0x100/0x230 arch/x86/entry/common.c:89
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f5cbfd7e819
Code: Unable to access opcode bytes at 0x7f5cbfd7e7ef.
RSP: 002b:00007f5cbdbf60e8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca
RAX: fffffffffffffe00 RBX: 00007f5cbff35fa8 RCX: 00007f5cbfd7e819
RDX: 0000000000000000 RSI: 0000000000000080 RDI: 00007f5cbff35fa8
RBP: 00007f5cbff35fa0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 00007f5cbff35fac
R13: 0000000000000000 R14: 00007fff6cdfd8c0 R15: 00007fff6cdfd9a8
----------------
Code disassembly (best guess):
0: 2b 00 sub (%rax),%eax
2: 74 08 je 0xc
4: 4c 89 f7 mov %r14,%rdi
7: e8 4a 81 8c 00 call 0x8c8156
c: f6 44 24 61 02 testb $0x2,0x61(%rsp)
11: 0f 85 85 01 00 00 jne 0x19c
17: 41 f7 c7 00 02 00 00 test $0x200,%r15d
1e: 74 01 je 0x21
20: fb sti
21: 48 c7 44 24 40 0e 36 movq $0x45e0360e,0x40(%rsp)
28: e0 45
* 2a: 4b c7 44 25 00 00 00 movq $0x0,0x0(%r13,%r12,1) <-- trapping instruction
31: 00 00
33: 43 c7 44 25 09 00 00 movl $0x0,0x9(%r13,%r12,1)
3a: 00 00
3c: 43 rex.XB
3d: c7 .byte 0xc7
3e: 44 rex.R
3f: 25 .byte 0x25