usercopy: Kernel memory overwrite attempt detected to SLUB object 'task_struct' (offset 80, size 116)! ------------[ cut here ]------------ kernel BUG at mm/usercopy.c:102! Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM Modules linked in: CPU: 0 UID: 0 PID: 4562 Comm: syz.0.232 Not tainted 6.12.0-syzkaller #0 Hardware name: ARM-Versatile Express PC is at usercopy_abort+0x98/0x9c mm/usercopy.c:102 LR is at __raw_spin_unlock include/linux/spinlock_api_smp.h:143 [inline] LR is at _raw_spin_unlock+0x2c/0x50 kernel/locking/spinlock.c:186 pc : [<819b3340>] lr : [<819d837c>] psr: 60000013 sp : e0475d90 ip : e0475be8 fp : e0475db4 r10: 81a00568 r9 : 00000078 r8 : 83da2450 r7 : dde83a80 r6 : 00000000 r5 : 00000074 r4 : 00000050 r3 : 83da1800 r2 : 00000000 r1 : 00000000 r0 : 00000066 Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user Control: 30c5387d Table: 8510bd80 DAC: fffffffd Register r0 information: non-paged memory Register r1 information: NULL pointer Register r2 information: NULL pointer Register r3 information: slab task_struct start 83da1800 pointer offset 0 size 3072 Register r4 information: non-paged memory Register r5 information: non-paged memory Register r6 information: NULL pointer Register r7 information: non-slab/vmalloc memory Register r8 information: slab task_struct start 83da2400 pointer offset 80 size 3072 Register r9 information: non-paged memory Register r10 information: non-slab/vmalloc memory Register r11 information: 2-page vmalloc region starting at 0xe0474000 allocated at kernel_clone+0xac/0x3e4 kernel/fork.c:2787 Register r12 information: 2-page vmalloc region starting at 0xe0474000 allocated at kernel_clone+0xac/0x3e4 kernel/fork.c:2787 Process syz.0.232 (pid: 4562, stack limit = 0xe0474000) Stack: (0xe0475d90 to 0xe0476000) 5d80: 8205ec8c 820306e8 82045b4c 00000050 5da0: 00000074 00000078 e0475de4 e0475db8 804d1d40 819b32b4 00000074 e0475dc8 5dc0: 80214800 83da2450 00000074 00000000 83da24c4 dde83a80 e0475e1c e0475de8 5de0: 80510b1c 804d1c74 00000074 20000084 e0475e0c 83da2450 00000074 20000084 5e00: 00000074 81a005a0 00000078 81a00568 e0475e4c e0475e20 80209db4 805108a0 5e20: 00000000 82e52dc0 00000064 e0475e2c e0475e2c 80209d24 83da2400 20000084 5e40: e0475ef4 e0475e50 80253634 80209d30 00000000 20000000 20000000 81a0057c 5e60: 819d7fc4 00000000 e0475eb4 e0475e78 8020d0cc 8020c034 e0475e94 00000000 5e80: 8027fa10 00000000 00000000 00000000 00000000 00000000 00000000 00000000 5ea0: 00000000 83da1800 e0475edc e0475eb8 8027e354 802af5ec 00000000 00000000 5ec0: e0475eec 0c6dc906 83da2400 20000080 00004202 00000002 00000000 20000080 5ee0: 83da1800 0000001a e0475f6c e0475ef8 8020a1e4 8025332c 83da2400 83da2c84 5f00: e0475f1c e0475f10 819d8470 8027c778 e0475f6c e0475f20 802813ec 819d844c 5f20: e0475f54 00000000 8027e354 60000013 819851d0 8199c454 e0475f54 0c6dc906 5f40: 00004205 83da2400 00004205 0c6dc906 83da2400 00004205 00000002 00000000 5f60: e0475fa4 e0475f70 80252fdc 8020a140 80202cc0 0c6dc906 e0475fac 00000000 5f80: 00000000 002862f4 0000001a 8020029c 83da1800 0000001a 00000000 e0475fa8 5fa0: 80200060 80252db0 00000000 00000000 00004205 0000010e 00000002 20000080 5fc0: 00000000 00000000 002862f4 0000001a 00000000 00006364 003d0f00 76bc50bc 5fe0: 76bc4ec0 76bc4eb0 00018af0 00133450 60000010 00004205 00000000 00000000 Call trace: [<819b32a8>] (usercopy_abort) from [<804d1d40>] (__check_heap_object+0xd8/0xf4 mm/slub.c:5651) [<804d1c68>] (__check_heap_object) from [<80510b1c>] (check_heap_object mm/usercopy.c:196 [inline]) [<804d1c68>] (__check_heap_object) from [<80510b1c>] (__check_object_size mm/usercopy.c:251 [inline]) [<804d1c68>] (__check_heap_object) from [<80510b1c>] (__check_object_size+0x288/0x304 mm/usercopy.c:213) r8:dde83a80 r7:83da24c4 r6:00000000 r5:00000074 r4:83da2450 [<80510894>] (__check_object_size) from [<80209db4>] (check_object_size include/linux/thread_info.h:228 [inline]) [<80510894>] (__check_object_size) from [<80209db4>] (__copy_from_user include/linux/uaccess.h:110 [inline]) [<80510894>] (__check_object_size) from [<80209db4>] (user_regset_copyin include/linux/regset.h:268 [inline]) [<80510894>] (__check_object_size) from [<80209db4>] (fpa_set+0x90/0x118 arch/arm/kernel/ptrace.c:587) r10:81a00568 r9:00000078 r8:81a005a0 r7:00000074 r6:20000084 r5:00000074 r4:83da2450 [<80209d24>] (fpa_set) from [<80253634>] (copy_regset_from_user include/linux/regset.h:337 [inline]) [<80209d24>] (fpa_set) from [<80253634>] (ptrace_regset kernel/ptrace.c:906 [inline]) [<80209d24>] (fpa_set) from [<80253634>] (ptrace_request+0x314/0xa78 kernel/ptrace.c:1218) r6:20000084 r5:83da2400 r4:80209d24 [<80253320>] (ptrace_request) from [<8020a1e4>] (arch_ptrace+0xb0/0x424 arch/arm/kernel/ptrace.c:818) r10:0000001a r9:83da1800 r8:20000080 r7:00000000 r6:00000002 r5:00004202 r4:20000080 [<8020a134>] (arch_ptrace) from [<80252fdc>] (__do_sys_ptrace kernel/ptrace.c:1285 [inline]) [<8020a134>] (arch_ptrace) from [<80252fdc>] (sys_ptrace+0x238/0x4dc kernel/ptrace.c:1258) r7:00000000 r6:00000002 r5:00004205 r4:83da2400 [<80252da4>] (sys_ptrace) from [<80200060>] (ret_fast_syscall+0x0/0x1c arch/arm/mm/proc-v7.S:67) Exception stack(0xe0475fa8 to 0xe0475ff0) 5fa0: 00000000 00000000 00004205 0000010e 00000002 20000080 5fc0: 00000000 00000000 002862f4 0000001a 00000000 00006364 003d0f00 76bc50bc 5fe0: 76bc4ec0 76bc4eb0 00018af0 00133450 r10:0000001a r9:83da1800 r8:8020029c r7:0000001a r6:002862f4 r5:00000000 r4:00000000 Code: e30e0c90 e3480205 e58dc000 ebfff265 (e7f001f2) ---[ end trace 0000000000000000 ]--- ---------------- Code disassembly (best guess): 0: e30e0c90 movw r0, #60560 @ 0xec90 4: e3480205 movt r0, #33285 @ 0x8205 8: e58dc000 str ip, [sp] c: ebfff265 bl 0xffffc9a8 * 10: e7f001f2 udf #18 <-- trapping instruction