------------[ cut here ]------------ UBSAN: array-index-out-of-bounds in ./kernel/bpf/devmap.c:385:28 index 16 is out of range for type 'struct xdp_frame *[16]' CPU: 1 UID: 0 PID: 10673 Comm: syz.0.1705 Not tainted 6.11.0-rc1-syzkaller-00004-gdc1c8034e31b #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/27/2024 Call Trace: __dump_stack lib/dump_stack.c:93 [inline] dump_stack_lvl+0x241/0x360 lib/dump_stack.c:119 ubsan_epilogue lib/ubsan.c:231 [inline] __ubsan_handle_out_of_bounds+0x121/0x150 lib/ubsan.c:429 bq_xmit_all+0x157/0x11d0 kernel/bpf/devmap.c:385 __dev_flush+0x81/0x160 kernel/bpf/devmap.c:425 xdp_do_check_flushed+0x129/0x240 net/core/filter.c:4307 __napi_poll+0xe4/0x490 net/core/dev.c:6774 napi_poll net/core/dev.c:6840 [inline] net_rx_action+0x89b/0x1240 net/core/dev.c:6962 handle_softirqs+0x2c4/0x970 kernel/softirq.c:554 __do_softirq kernel/softirq.c:588 [inline] invoke_softirq kernel/softirq.c:428 [inline] __irq_exit_rcu+0xf4/0x1c0 kernel/softirq.c:637 irq_exit_rcu+0x9/0x30 kernel/softirq.c:649 common_interrupt+0xaa/0xd0 arch/x86/kernel/irq.c:278 asm_common_interrupt+0x26/0x40 arch/x86/include/asm/idtentry.h:693 RIP: 0010:__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:152 [inline] RIP: 0010:_raw_spin_unlock_irqrestore+0xd8/0x140 kernel/locking/spinlock.c:194 Code: 9c 8f 44 24 20 42 80 3c 23 00 74 08 4c 89 f7 e8 ce ba 40 f6 f6 44 24 21 02 75 52 41 f7 c7 00 02 00 00 74 01 fb bf 01 00 00 00 83 04 ac f5 65 8b 05 04 fc 4c 74 85 c0 74 43 48 c7 04 24 0e 36 RSP: 0018:ffffc90015967200 EFLAGS: 00000206 RAX: b27f79bfcea7f500 RBX: 1ffff92002b2ce44 RCX: ffffffff81701d7a RDX: dffffc0000000000 RSI: ffffffff8bead520 RDI: 0000000000000001 RBP: ffffc90015967290 R08: ffffffff934eb85f R09: 1ffffffff269d70b R10: dffffc0000000000 R11: fffffbfff269d70c R12: dffffc0000000000 R13: 1ffff92002b2ce40 R14: ffffc90015967220 R15: 0000000000000246 spin_unlock_irqrestore include/linux/spinlock.h:406 [inline] unlock_page_lruvec_irqrestore include/linux/memcontrol.h:1524 [inline] folio_batch_move_lru+0x42b/0x4e0 mm/swap.c:221 lru_add_drain_cpu+0x10e/0x8c0 mm/swap.c:661 lru_add_drain+0x123/0x3e0 mm/swap.c:775 free_pages_and_swap_cache+0xc4/0x690 mm/swap_state.c:320 __tlb_batch_free_encoded_pages mm/mmu_gather.c:136 [inline] tlb_batch_pages_flush mm/mmu_gather.c:149 [inline] tlb_flush_mmu_free mm/mmu_gather.c:366 [inline] tlb_flush_mmu+0x3a3/0x680 mm/mmu_gather.c:373 tlb_finish_mmu+0xd4/0x200 mm/mmu_gather.c:465 exit_mmap+0x44f/0xc80 mm/mmap.c:3425 __mmput+0x115/0x380 kernel/fork.c:1345 exit_mm+0x220/0x310 kernel/exit.c:571 do_exit+0x9b2/0x27f0 kernel/exit.c:869 do_group_exit+0x207/0x2c0 kernel/exit.c:1031 get_signal+0x1695/0x1730 kernel/signal.c:2917 arch_do_signal_or_restart+0x96/0x860 arch/x86/kernel/signal.c:310 exit_to_user_mode_loop kernel/entry/common.c:111 [inline] exit_to_user_mode_prepare include/linux/entry-common.h:328 [inline] __syscall_exit_to_user_mode_work kernel/entry/common.c:207 [inline] syscall_exit_to_user_mode+0xc9/0x370 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:0x7ff010577299 Code: Unable to access opcode bytes at 0x7ff01057726f. RSP: 002b:00007ff0114070f8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca RAX: fffffffffffffe00 RBX: 00007ff010705f88 RCX: 00007ff010577299 RDX: 0000000000000000 RSI: 0000000000000080 RDI: 00007ff010705f88 RBP: 00007ff010705f80 R08: 00007ff0114076c0 R09: 00007ff0114076c0 R10: 0000000000000000 R11: 0000000000000246 R12: 00007ff010705f8c R13: 000000000000000b R14: 00007ffd6dd71080 R15: 00007ffd6dd71168 ---[ end trace ]--- ---------------- Code disassembly (best guess): 0: 9c pushf 1: 8f 44 24 20 pop 0x20(%rsp) 5: 42 80 3c 23 00 cmpb $0x0,(%rbx,%r12,1) a: 74 08 je 0x14 c: 4c 89 f7 mov %r14,%rdi f: e8 ce ba 40 f6 call 0xf640bae2 14: f6 44 24 21 02 testb $0x2,0x21(%rsp) 19: 75 52 jne 0x6d 1b: 41 f7 c7 00 02 00 00 test $0x200,%r15d 22: 74 01 je 0x25 24: fb sti 25: bf 01 00 00 00 mov $0x1,%edi * 2a: e8 83 04 ac f5 call 0xf5ac04b2 <-- trapping instruction 2f: 65 8b 05 04 fc 4c 74 mov %gs:0x744cfc04(%rip),%eax # 0x744cfc3a 36: 85 c0 test %eax,%eax 38: 74 43 je 0x7d 3a: 48 rex.W 3b: c7 .byte 0xc7 3c: 04 24 add $0x24,%al 3e: 0e (bad) 3f: 36 ss