syzbot


KCSAN: data-race in bond_rcv_validate / bond_rcv_validate (2)

Status: internal: reported on 2026/01/20 13:02
Subsystems: net
[Documentation on labels]
Fix commit: f6c3665b6dc5 bonding: annotate data-races around slave->last_rx
Patched on: [ci-qemu-gce-upstream-auto ci-qemu-upstream ci-qemu-upstream-386 ci-qemu2-arm32 ci-qemu2-arm64 ci-qemu2-arm64-compat ci-qemu2-arm64-mte 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-386-root ci-upstream-linux-next-kasan-gce-root ci-upstream-net-this-kasan-gce ci-upstream-rust-kasan-gce ci2-upstream-kcsan-gce], missing on: [ci-qemu-native-arm64-kvm ci-qemu2-riscv64 ci-snapshot-upstream-root ci-upstream-bpf-kasan-gce ci-upstream-bpf-next-kasan-gce ci-upstream-gce-arm64 ci-upstream-kasan-badwrites-root ci-upstream-kmsan-gce-root ci-upstream-net-kasan-gce ci2-upstream-fs ci2-upstream-usb]
First crash: 10d, last: 10d
Similar bugs (1)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in bond_rcv_validate / bond_rcv_validate net 6 1 374d 374d 0/29 auto-obsoleted due to no activity on 2025/03/18 17:20

Sample crash report:
bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:17, vlan:0)
==================================================================
BUG: KCSAN: data-race in bond_rcv_validate / bond_rcv_validate

write to 0xffff888149f0d428 of 8 bytes by interrupt on cpu 1:
 bond_rcv_validate+0x202/0x7a0 drivers/net/bonding/bond_main.c:3335
 bond_handle_frame+0xde/0x5e0 drivers/net/bonding/bond_main.c:1533
 __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039
 __netif_receive_skb_one_core net/core/dev.c:6150 [inline]
 __netif_receive_skb+0x59/0x270 net/core/dev.c:6265
 netif_receive_skb_internal net/core/dev.c:6351 [inline]
 netif_receive_skb+0x4b/0x2d0 net/core/dev.c:6410
 br_netif_receive_skb net/bridge/br_input.c:30 [inline]
 NF_HOOK include/linux/netfilter.h:318 [inline]
 br_pass_frame_up+0x23b/0x330 net/bridge/br_input.c:70
 br_handle_frame_finish+0xdb5/0xfc0 net/bridge/br_input.c:-1
 br_nf_hook_thresh+0x233/0x270 net/bridge/br_netfilter_hooks.c:-1
 br_nf_pre_routing_finish_ipv6+0x550/0x580 net/bridge/br_netfilter_ipv6.c:-1
 NF_HOOK include/linux/netfilter.h:318 [inline]
 br_nf_pre_routing_ipv6+0x1fa/0x2e0 net/bridge/br_netfilter_ipv6.c:184
 br_nf_pre_routing+0x52b/0xbd0 net/bridge/br_netfilter_hooks.c:508
 nf_hook_entry_hookfn include/linux/netfilter.h:158 [inline]
 nf_hook_bridge_pre net/bridge/br_input.c:291 [inline]
 br_handle_frame+0x51e/0xa30 net/bridge/br_input.c:442
 __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039
 __netif_receive_skb_one_core net/core/dev.c:6150 [inline]
 __netif_receive_skb+0x59/0x270 net/core/dev.c:6265
 process_backlog+0x228/0x420 net/core/dev.c:6617
 __napi_poll+0x5f/0x300 net/core/dev.c:7681
 napi_poll net/core/dev.c:7744 [inline]
 net_rx_action+0x452/0x930 net/core/dev.c:7896
 handle_softirqs+0xb9/0x280 kernel/softirq.c:622
 do_softirq+0x45/0x60 kernel/softirq.c:523
 __local_bh_enable_ip+0x70/0x80 kernel/softirq.c:450
 __raw_spin_unlock_bh include/linux/spinlock_api_smp.h:167 [inline]
 _raw_spin_unlock_bh+0x36/0x40 kernel/locking/spinlock.c:210
 spin_unlock_bh include/linux/spinlock.h:396 [inline]
 batadv_tt_global_purge net/batman-adv/translation-table.c:2250 [inline]
 batadv_tt_purge+0x2cd/0x610 net/batman-adv/translation-table.c:3510
 process_one_work kernel/workqueue.c:3257 [inline]
 process_scheduled_works+0x4cd/0x9d0 kernel/workqueue.c:3340
 worker_thread+0x581/0x770 kernel/workqueue.c:3421
 kthread+0x488/0x510 kernel/kthread.c:463
 ret_from_fork+0x148/0x280 arch/x86/kernel/process.c:158
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246

write to 0xffff888149f0d428 of 8 bytes by interrupt on cpu 0:
 bond_rcv_validate+0x202/0x7a0 drivers/net/bonding/bond_main.c:3335
 bond_handle_frame+0xde/0x5e0 drivers/net/bonding/bond_main.c:1533
 __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039
 __netif_receive_skb_one_core net/core/dev.c:6150 [inline]
 __netif_receive_skb+0x59/0x270 net/core/dev.c:6265
 netif_receive_skb_internal net/core/dev.c:6351 [inline]
 netif_receive_skb+0x4b/0x2d0 net/core/dev.c:6410
 br_netif_receive_skb net/bridge/br_input.c:30 [inline]
 NF_HOOK include/linux/netfilter.h:318 [inline]
 br_pass_frame_up+0x23b/0x330 net/bridge/br_input.c:70
 br_handle_frame_finish+0xdb5/0xfc0 net/bridge/br_input.c:-1
 br_nf_hook_thresh net/bridge/br_netfilter_hooks.c:-1 [inline]
 br_nf_pre_routing_finish+0x8af/0xbe0 net/bridge/br_netfilter_hooks.c:425
 rcu_read_unlock include/linux/rcupdate.h:899 [inline]
 nf_hook include/linux/netfilter.h:275 [inline]
 NF_HOOK+0x1ec/0x230 include/linux/netfilter.h:316
 br_nf_pre_routing+0xad8/0xbd0 net/bridge/br_netfilter_hooks.c:534
 nf_hook_entry_hookfn include/linux/netfilter.h:158 [inline]
 nf_hook_bridge_pre net/bridge/br_input.c:291 [inline]
 br_handle_frame+0x51e/0xa30 net/bridge/br_input.c:442
 __netif_receive_skb_core+0x5b1/0x1950 net/core/dev.c:6039
 __netif_receive_skb_one_core net/core/dev.c:6150 [inline]
 __netif_receive_skb+0x59/0x270 net/core/dev.c:6265
 process_backlog+0x228/0x420 net/core/dev.c:6617
 __napi_poll+0x5f/0x300 net/core/dev.c:7681
 napi_poll net/core/dev.c:7744 [inline]
 net_rx_action+0x452/0x930 net/core/dev.c:7896
 handle_softirqs+0xb9/0x280 kernel/softirq.c:622
 do_softirq+0x45/0x60 kernel/softirq.c:523
 __local_bh_enable_ip+0x70/0x80 kernel/softirq.c:450
 local_bh_enable include/linux/bottom_half.h:33 [inline]
 fpregs_unlock arch/x86/include/asm/fpu/api.h:77 [inline]
 kernel_fpu_end+0x6c/0x80 arch/x86/kernel/fpu/core.c:506
 blake2s_compress+0x67/0x1740 lib/crypto/x86/blake2s.h:42
 blake2s_final+0x6a/0xa0 lib/crypto/blake2s.c:142
 hmac+0x3a1/0x400 drivers/net/wireguard/noise.c:333
 kdf drivers/net/wireguard/noise.c:367 [inline]
 message_ephemeral+0x1e6/0x260 drivers/net/wireguard/noise.c:493
 wg_noise_handshake_create_initiation+0x15e/0x610 drivers/net/wireguard/noise.c:545
 wg_packet_send_handshake_initiation drivers/net/wireguard/send.c:34 [inline]
 wg_packet_handshake_send_worker+0xb2/0x160 drivers/net/wireguard/send.c:51
 process_one_work kernel/workqueue.c:3257 [inline]
 process_scheduled_works+0x4cd/0x9d0 kernel/workqueue.c:3340
 worker_thread+0x581/0x770 kernel/workqueue.c:3421
 kthread+0x488/0x510 kernel/kthread.c:463
 ret_from_fork+0x148/0x280 arch/x86/kernel/process.c:158
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246

value changed: 0x0000000100005365 -> 0x0000000100005366

Reported by Kernel Concurrency Sanitizer on:
CPU: 0 UID: 0 PID: 19319 Comm: kworker/u8:38 Tainted: G        W           syzkaller #0 PREEMPT(voluntary) 
Tainted: [W]=WARN
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025
Workqueue: wg-kex-wg2 wg_packet_handshake_send_worker
==================================================================
net_ratelimit: 67694 callbacks suppressed
bridge0: received packet on veth0_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:17, vlan:0)
bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:17, vlan:0)
bridge0: received packet on veth0_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:17, vlan:0)
bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:17, vlan:0)
bridge0: received packet on veth0_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:17, vlan:0)
ip6_tunnel: ip6gre1 xmit: Local address not yet configured!
net_ratelimit: 60625 callbacks suppressed
bridge0: received packet on veth0_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:17, vlan:0)
bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:17, vlan:0)
bridge0: received packet on veth0_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:17, vlan:0)
bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:17, vlan:0)
bridge0: received packet on veth0_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:17, vlan:0)

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/01/20 13:01 upstream 24d479d26b25 06648d9c .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in bond_rcv_validate / bond_rcv_validate
* Struck through repros no longer work on HEAD.