syzbot


KCSAN: data-race in kcm_rfree / unreserve_rx_kcm (3)

Status: internal: reported on 2022/10/17 22:07
Reported-by: syzbot+@syzkaller.appspotmail.com
Fix commit: 15e4dabda11b kcm: annotate data-races around kcm->rx_psock
Patched on: [ci-qemu-upstream ci-qemu-upstream-386 ci-qemu2-arm32 ci-qemu2-arm64 ci-qemu2-arm64-compat ci-qemu2-arm64-mte ci-upstream-bpf-kasan-gce ci-upstream-bpf-next-kasan-gce ci-upstream-gce-arm64 ci-upstream-gce-leak ci-upstream-kasan-gce ci-upstream-kasan-gce-386 ci-upstream-kasan-gce-root ci-upstream-kasan-gce-selinux-root ci-upstream-kasan-gce-smack-root ci-upstream-kmsan-gce ci-upstream-kmsan-gce-386 ci-upstream-linux-next-kasan-gce-root ci-upstream-net-kasan-gce ci-upstream-net-this-kasan-gce ci2-upstream-fs ci2-upstream-kcsan-gce ci2-upstream-usb], missing on: [ci-qemu2-riscv64]
First crash: 106d, last: 99d
similar bugs (2):
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in kcm_rfree / unreserve_rx_kcm (2) 141 111d 443d 0/24 closed as invalid on 2022/10/12 17:53
upstream KCSAN: data-race in kcm_rfree / unreserve_rx_kcm 236 662d 853d 0/24 auto-closed as invalid on 2021/05/12 22:24

Sample crash report:
==================================================================
BUG: KCSAN: data-race in kcm_rfree / unreserve_rx_kcm

write to 0xffff8881092a47b8 of 8 bytes by task 25 on cpu 1:
 unreserve_rx_kcm+0x72/0x1f0 net/kcm/kcmsock.c:313
 kcm_rcv_strparser+0x2b5/0x3a0 net/kcm/kcmsock.c:373
 __strp_recv+0x64c/0xd20 net/strparser/strparser.c:301
 strp_recv+0x6d/0x80 net/strparser/strparser.c:335
 tcp_read_sock+0x13e/0x5a0 net/ipv4/tcp.c:1703
 strp_read_sock net/strparser/strparser.c:358 [inline]
 do_strp_work net/strparser/strparser.c:406 [inline]
 strp_work+0xe8/0x180 net/strparser/strparser.c:415
 process_one_work+0x3d3/0x720 kernel/workqueue.c:2289
 worker_thread+0x618/0xa70 kernel/workqueue.c:2436
 kthread+0x1a9/0x1e0 kernel/kthread.c:376
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:306

read to 0xffff8881092a47b8 of 8 bytes by task 4090 on cpu 0:
 kcm_rfree+0x14c/0x220 net/kcm/kcmsock.c:181
 skb_release_head_state+0x8e/0x160 net/core/skbuff.c:841
 skb_release_all net/core/skbuff.c:852 [inline]
 __kfree_skb net/core/skbuff.c:868 [inline]
 kfree_skb_reason+0x5c/0x260 net/core/skbuff.c:891
 kfree_skb include/linux/skbuff.h:1216 [inline]
 kcm_recvmsg+0x226/0x2b0 net/kcm/kcmsock.c:1161
 ____sys_recvmsg+0x16c/0x2e0
 ___sys_recvmsg net/socket.c:2743 [inline]
 do_recvmmsg+0x2f1/0x710 net/socket.c:2837
 __sys_recvmmsg net/socket.c:2916 [inline]
 __do_sys_recvmmsg net/socket.c:2939 [inline]
 __se_sys_recvmmsg net/socket.c:2932 [inline]
 __x64_sys_recvmmsg+0xde/0x160 net/socket.c:2932
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x2b/0x70 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x63/0xcd

value changed: 0xffff888108759e00 -> 0x0000000000000000

Reported by Kernel Concurrency Sanitizer on:
CPU: 0 PID: 4090 Comm: syz-executor.2 Not tainted 6.1.0-rc1-syzkaller-00158-g440b7895c990-dirty #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/11/2022
==================================================================

Crashes (4):
Manager Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets Title
ci2-upstream-kcsan-gce 2022/10/22 08:24 upstream 440b7895c990 c0b80a55 .config console log report info [disk image] [vmlinux] KCSAN: data-race in kcm_rfree / unreserve_rx_kcm
ci2-upstream-kcsan-gce 2022/10/20 19:51 upstream aae703b02f92 a0fd4dab .config console log report info [disk image] [vmlinux] KCSAN: data-race in kcm_rfree / unreserve_rx_kcm
ci2-upstream-kcsan-gce 2022/10/19 02:34 upstream aae703b02f92 b31320fc .config console log report info [disk image] [vmlinux] KCSAN: data-race in kcm_rfree / unreserve_rx_kcm
ci2-upstream-kcsan-gce 2022/10/15 12:40 upstream 19d17ab7c68b 67cb024c .config console log report info [disk image] [vmlinux] KCSAN: data-race in kcm_rfree / unreserve_rx_kcm
* Struck through repros no longer work on HEAD.