Re: [syzbot] [bridge?] KCSAN: data-race in br_fdb_update / br_fdb_update (8)

Eric Dumazet <[email protected]>
Newsgroups gmane.linux.network.bridge
Message-ID <CANn89iJy0Gx35wV_e8Kq2PqdVA2GcjRU7nDxotgkqAzRAf6Ljg__27334.3801892892$1767784192$gmane$org@mail.gmail.com>
On Wed, Jan 7, 2026 at 12:03 PM syzbot
<[email protected]> wrote:
>
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit:    f0b9d8eb98df Merge tag 'nfsd-6.19-3' of git://git.kernel.o..
> git tree:       upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=1304c922580000
> kernel config:  https://syzkaller.appspot.com/x/.config?x=b319ff1b6a2797ca
> dashboard link: https://syzkaller.appspot.com/bug?extid=bfab43087ad57222ce96
> compiler:       Debian clang version 20.1.8 (++20250708063551+0c9f909b7976-1~exp1~20250708183702.136), Debian LLD 20.1.8
>
> Unfortunately, I don't have any reproducer for this issue yet.
>
> Downloadable assets:
> disk image: https://storage.googleapis.com/syzbot-assets/f91c35600c27/disk-f0b9d8eb.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/9edb3553b7a5/vmlinux-f0b9d8eb.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/4d762ee145b8/bzImage-f0b9d8eb.xz
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: [email protected]
>
> bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:1b, vlan:0)
> bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:1b, vlan:0)
> ==================================================================
> BUG: KCSAN: data-race in br_fdb_update / br_fdb_update
>
> read to 0xffff88811a0655c0 of 8 bytes by interrupt on cpu 1:
>  br_fdb_update+0x106/0x460 net/bridge/br_fdb.c:1005
>  br_handle_frame_finish+0x340/0xfc0 net/bridge/br_input.c:144
>  br_nf_hook_thresh+0x1eb/0x220 net/bridge/br_netfilter_hooks.c:-1
>  br_nf_pre_routing_finish_ipv6+0x4d1/0x570 net/bridge/br_netfilter_ipv6.c:-1
>  NF_HOOK include/linux/netfilter.h:318 [inline]
>  br_nf_pre_routing_ipv6+0x1fa/0x2b0 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+0x4f0/0x9e0 net/bridge/br_input.c:442
>  __netif_receive_skb_core+0x5df/0x1920 net/core/dev.c:6026
>  __netif_receive_skb_one_core net/core/dev.c:6137 [inline]
>  __netif_receive_skb+0x59/0x270 net/core/dev.c:6252
>  process_backlog+0x228/0x420 net/core/dev.c:6604
>  __napi_poll+0x5f/0x300 net/core/dev.c:7668
>  napi_poll net/core/dev.c:7731 [inline]
>  net_rx_action+0x425/0x8c0 net/core/dev.c:7883
>  handle_softirqs+0xba/0x290 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]
>  __alloc_skb+0x476/0x4b0 net/core/skbuff.c:674
>  alloc_skb include/linux/skbuff.h:1383 [inline]
>  wg_socket_send_buffer_to_peer+0x35/0x120 drivers/net/wireguard/socket.c:192
>  wg_packet_send_handshake_initiation drivers/net/wireguard/send.c:40 [inline]
>  wg_packet_handshake_send_worker+0x10d/0x160 drivers/net/wireguard/send.c:51
>  process_one_work kernel/workqueue.c:3257 [inline]
>  process_scheduled_works+0x4ce/0x9d0 kernel/workqueue.c:3340
>  worker_thread+0x582/0x770 kernel/workqueue.c:3421
>  kthread+0x489/0x510 kernel/kthread.c:463
>  ret_from_fork+0x149/0x290 arch/x86/kernel/process.c:158
>  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246
>
> write to 0xffff88811a0655c0 of 8 bytes by interrupt on cpu 0:
>  br_fdb_update+0x13e/0x460 net/bridge/br_fdb.c:1006
>  br_handle_frame_finish+0x340/0xfc0 net/bridge/br_input.c:144
>  br_nf_hook_thresh+0x1eb/0x220 net/bridge/br_netfilter_hooks.c:-1
>  br_nf_pre_routing_finish_ipv6+0x4d1/0x570 net/bridge/br_netfilter_ipv6.c:-1
>  NF_HOOK include/linux/netfilter.h:318 [inline]
>  br_nf_pre_routing_ipv6+0x1fa/0x2b0 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+0x4f0/0x9e0 net/bridge/br_input.c:442
>  __netif_receive_skb_core+0x5df/0x1920 net/core/dev.c:6026
>  __netif_receive_skb_one_core net/core/dev.c:6137 [inline]
>  __netif_receive_skb+0x59/0x270 net/core/dev.c:6252
>  process_backlog+0x228/0x420 net/core/dev.c:6604
>  __napi_poll+0x5f/0x300 net/core/dev.c:7668
>  napi_poll net/core/dev.c:7731 [inline]
>  net_rx_action+0x425/0x8c0 net/core/dev.c:7883
>  handle_softirqs+0xba/0x290 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:480
>  blake2s_compress+0x67/0x1740 lib/crypto/x86/blake2s.h:42
>  blake2s_update+0xa3/0x160 lib/crypto/blake2s.c:119
>  hmac+0x141/0x270 drivers/net/wireguard/noise.c:324
>  kdf+0x10b/0x1d0 drivers/net/wireguard/noise.c:375
>  mix_dh drivers/net/wireguard/noise.c:413 [inline]
>  wg_noise_handshake_create_initiation+0x1ac/0x520 drivers/net/wireguard/noise.c:550
>  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+0x4ce/0x9d0 kernel/workqueue.c:3340
>  worker_thread+0x582/0x770 kernel/workqueue.c:3421
>  kthread+0x489/0x510 kernel/kthread.c:463
>  ret_from_fork+0x149/0x290 arch/x86/kernel/process.c:158
>  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246
>
> value changed: 0x0000000100026abc -> 0x0000000100026abd
>
> Reported by Kernel Concurrency Sanitizer on:
> CPU: 0 UID: 0 PID: 8678 Comm: kworker/u8:42 Not tainted syzkaller #0 PREEMPT(voluntary)
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025
> Workqueue: wg-kex-wg0 wg_packet_handshake_send_worker
> ==================================================================
> net_ratelimit: 6540 callbacks suppressed
> bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:aa, vlan:0)
> bridge0: received packet on veth0_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:aa, vlan:0)
> bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
> bridge0: received packet on veth0_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
> bridge0: received packet on veth0_to_bridge with own address as source address (addr:96:6e:14:75:db:9d, vlan:0)
> bridge0: received packet on veth0_to_bridge with own address as source address (addr:96:6e:14:75:db:9d, vlan:0)
> bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
> bridge0: received packet on veth0_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
> bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:1b, vlan:0)
> bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:1b, vlan:0)
> net_ratelimit: 7050 callbacks suppressed
> bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:aa, vlan:0)
> bridge0: received packet on veth0_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:aa, vlan:0)
> bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
> bridge0: received packet on veth0_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
> bridge0: received packet on veth0_to_bridge with own address as source address (addr:96:6e:14:75:db:9d, vlan:0)
> bridge0: received packet on veth0_to_bridge with own address as source address (addr:96:6e:14:75:db:9d, vlan:0)
> bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
> bridge0: received packet on veth0_to_bridge with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
> bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:1b, vlan:0)
> bridge0: received packet on bridge_slave_0 with own address as source address (addr:aa:aa:aa:aa:aa:1b, vlan:0)
>
>
> ---
> This report is generated by a bot. It may contain errors.
> See https://goo.gl/tpsmEJ for more information about syzbot.
> syzbot engineers can be reached at [email protected].
>
> syzbot will keep track of this issue. See:
> https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
>
> If the report is already addressed, let syzbot know by replying with:
> #syz fix: exact-commit-title
>
> If you want to overwrite report's subsystems, reply with:
> #syz set subsystems: new-subsystem
> (See the list of subsystem names on the web dashboard)
>
> If the report is a duplicate of another one, reply with:
> #syz dup: exact-subject-of-another-report
>
> If you want to undo deduplication, reply with:
> #syz undup

I am taking care of this issue, I will add the syzbot tags when sending V3 of

https://lore.kernel.org/netdev/CANn89iLaMpL1Kz=t13b0eGZ+m5dBxUpXx8oPKD1V-VwBAkzbJA@mail.gmail.com/T/#m19446ad4b132da817bda52a98a77a815034ed020

Thanks !
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.