syzbot


KCSAN: data-race in bcmp / stack_map_get_build_id_offset

Status: moderation: reported on 2025/09/22 10:49
Subsystems: bpf
[Documentation on labels]
Reported-by: syzbot+0462708d433602258c29@syzkaller.appspotmail.com
First crash: 10d, last: 3d01h

Sample crash report:
==================================================================
BUG: KCSAN: data-race in bcmp / stack_map_get_build_id_offset

write to 0xffff888118b79cc0 of 4 bytes by task 13884 on cpu 1:
 stack_map_get_build_id_offset+0x46b/0x570 kernel/bpf/stackmap.c:160
 __bpf_get_stackid+0x617/0x800 kernel/bpf/stackmap.c:266
 ____bpf_get_stackid kernel/bpf/stackmap.c:324 [inline]
 bpf_get_stackid+0xee/0x120 kernel/bpf/stackmap.c:300
 ____bpf_get_stackid_raw_tp kernel/trace/bpf_trace.c:1810 [inline]
 bpf_get_stackid_raw_tp+0xf6/0x120 kernel/trace/bpf_trace.c:1799
 bpf_prog_33c66cfd8c9e7eb0+0x2a/0x32
 bpf_dispatcher_nop_func include/linux/bpf.h:1332 [inline]
 __bpf_prog_run include/linux/filter.h:718 [inline]
 bpf_prog_run include/linux/filter.h:725 [inline]
 __bpf_trace_run kernel/trace/bpf_trace.c:2257 [inline]
 bpf_trace_run4+0x117/0x1d0 kernel/trace/bpf_trace.c:2300
 __do_trace_mm_page_alloc include/trace/events/kmem.h:177 [inline]
 trace_mm_page_alloc include/trace/events/kmem.h:177 [inline]
 __alloc_frozen_pages_noprof+0x32d/0x360 mm/page_alloc.c:5170
 alloc_pages_mpol+0xb3/0x250 mm/mempolicy.c:2416
 folio_alloc_mpol_noprof+0x39/0x80 mm/mempolicy.c:2435
 shmem_alloc_folio mm/shmem.c:1908 [inline]
 shmem_alloc_and_add_folio mm/shmem.c:1947 [inline]
 shmem_get_folio_gfp+0x3cf/0xd60 mm/shmem.c:2597
 shmem_fault+0xf6/0x250 mm/shmem.c:2798
 __do_fault+0xbc/0x200 mm/memory.c:5152
 do_read_fault mm/memory.c:5573 [inline]
 do_fault mm/memory.c:5707 [inline]
 do_pte_missing mm/memory.c:4234 [inline]
 handle_pte_fault mm/memory.c:6052 [inline]
 __handle_mm_fault mm/memory.c:6195 [inline]
 handle_mm_fault+0xf78/0x2c20 mm/memory.c:6364
 faultin_page mm/gup.c:1144 [inline]
 __get_user_pages+0x102e/0x1fa0 mm/gup.c:1446
 populate_vma_page_range mm/gup.c:1880 [inline]
 __mm_populate+0x243/0x3a0 mm/gup.c:1983
 mm_populate include/linux/mm.h:3367 [inline]
 vm_mmap_pgoff+0x232/0x2e0 mm/util.c:585
 ksys_mmap_pgoff+0xc2/0x310 mm/mmap.c:604
 x64_sys_call+0x14a3/0x2ff0 arch/x86/include/generated/asm/syscalls_64.h:10
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xd2/0x200 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

read to 0xffff888118b79cc0 of 8 bytes by task 13888 on cpu 0:
 memcmp lib/string.c:683 [inline]
 bcmp+0x23/0x90 lib/string.c:715
 memcmp include/linux/fortify-string.h:727 [inline]
 __bpf_get_stackid+0x65a/0x800 kernel/bpf/stackmap.c:269
 ____bpf_get_stackid kernel/bpf/stackmap.c:324 [inline]
 bpf_get_stackid+0xee/0x120 kernel/bpf/stackmap.c:300
 ____bpf_get_stackid_raw_tp kernel/trace/bpf_trace.c:1810 [inline]
 bpf_get_stackid_raw_tp+0xf6/0x120 kernel/trace/bpf_trace.c:1799
 bpf_prog_33c66cfd8c9e7eb0+0x2a/0x32
 bpf_dispatcher_nop_func include/linux/bpf.h:1332 [inline]
 __bpf_prog_run include/linux/filter.h:718 [inline]
 bpf_prog_run include/linux/filter.h:725 [inline]
 __bpf_trace_run kernel/trace/bpf_trace.c:2257 [inline]
 bpf_trace_run4+0x117/0x1d0 kernel/trace/bpf_trace.c:2300
 __do_trace_mm_page_alloc include/trace/events/kmem.h:177 [inline]
 trace_mm_page_alloc include/trace/events/kmem.h:177 [inline]
 __alloc_frozen_pages_noprof+0x32d/0x360 mm/page_alloc.c:5170
 __alloc_pages_noprof+0x9/0x20 mm/page_alloc.c:5182
 __alloc_pages_node_noprof include/linux/gfp.h:284 [inline]
 alloc_pages_node_noprof include/linux/gfp.h:311 [inline]
 pcpu_alloc_pages mm/percpu-vm.c:95 [inline]
 pcpu_populate_chunk+0x206/0xa70 mm/percpu-vm.c:285
 pcpu_alloc_noprof+0xac2/0x1250 mm/percpu.c:1870
 bpf_map_alloc_percpu+0xb3/0x200 kernel/bpf/syscall.c:558
 prealloc_init+0x19f/0x490 kernel/bpf/hashtab.c:336
 htab_map_alloc+0x4ba/0x6d0 kernel/bpf/hashtab.c:561
 map_create+0x843/0xca0 kernel/bpf/syscall.c:1480
 __sys_bpf+0x545/0x7b0 kernel/bpf/syscall.c:6011
 __do_sys_bpf kernel/bpf/syscall.c:6139 [inline]
 __se_sys_bpf kernel/bpf/syscall.c:6137 [inline]
 __x64_sys_bpf+0x41/0x50 kernel/bpf/syscall.c:6137
 x64_sys_call+0x2aea/0x2ff0 arch/x86/include/generated/asm/syscalls_64.h:322
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xd2/0x200 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

value changed: 0x9042fee400000001 -> 0x0000000000000002

Reported by Kernel Concurrency Sanitizer on:
CPU: 0 UID: 0 PID: 13888 Comm: syz.0.3489 Not tainted syzkaller #0 PREEMPT(voluntary) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/18/2025
==================================================================

Crashes (2):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/09/29 11:52 upstream e5f0a698b34e 86341da6 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in bcmp / stack_map_get_build_id_offset
2025/09/22 10:49 upstream 07e27ad16399 0ac7291c .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in bcmp / stack_map_get_build_id_offset
* Struck through repros no longer work on HEAD.