Cloudanix VulnDB

CVE-2026-45913

Medium · 5.5

CVSS

5.5

EPSS

0.2%

Published

May 27, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A local user or workload with network-management privileges may be able to crash certain Linux systems by abusing bridge multicast settings.

Exploitation
Local Privilege
Attacker needs
Low Privilege
Complexity
Moderate
Impact
Denial Of Service
Component
OS kernel
Class
Denial of service
Remediation
Upgrade
Effort
Medium
Patch risk
Medium

What it actually does

This flaw is a Linux kernel bridge multicast database accounting bug in VLAN-aware bridge contexts. Under specific bridge, VLAN filtering, multicast snooping, MDB add, link-state, and MDB flush operations, the kernel can decrement the multicast database entry counter without a matching prior increment. That counter underflow/inconsistency triggers a kernel WARN in the bridge multicast code path, specifically around br_multicast_port_ngroups_dec_one(), br_multicast_del_pg(), and br_mdb_flush(). On systems configured to panic on kernel warnings, this can escalate from a warning into a local denial of service through a kernel panic or reboot. The issue requires local ability to manipulate network bridge configuration, typically privileges such as CAP_NET_ADMIN or equivalent administrative network-control capability.

Why it matters to the business

Successful exploitation can disrupt Linux hosts that use kernel bridge networking, VLAN filtering, or multicast snooping, including virtualization, container, lab, network-appliance, and software-defined networking environments. The primary business risk is availability loss: an authorized local user, compromised low-privileged service with network administration capability, or container/workload granted excessive network capabilities may be able to crash or destabilize a host. The risk is highest on systems where kernel warnings are configured to trigger panic/reboot and on platforms that delegate network namespace or bridge-management capabilities to tenants, containers, or automation. This vulnerability is not currently listed in CISA KEV, is not known to be used in ransomware campaigns, and has a low EPSS score, so remediation should be prioritized by exposure to local users and delegated network administration rather than by evidence of broad internet exploitation.

How an attack unfolds

An attacker first obtains local code execution on a Linux system or in a network namespace with sufficient privileges to create or modify bridge devices, VLAN settings, and multicast database entries. They create or target a bridge with VLAN filtering and multicast snooping enabled, add a port to the bridge, and insert a permanent multicast database entry tied to a VLAN. They then manipulate the bridge state and multicast VLAN snooping settings so the kernel does not update the internal multicast database entry count in the expected way. Finally, they flush MDB entries, causing the deletion path to decrement a counter that was not incremented. The kernel detects the inconsistent state and emits a WARN in net/bridge/br_multicast.c. If the system is configured with panic_on_warn, or if repeated triggering destabilizes the system, the host can suffer denial of service.

How to fix it

Apply a Linux kernel update that includes the upstream bridge multicast fix for keeping mdb_n_entries synchronized for VLAN contexts. No specific fixed version was provided in the supplied data, so use the latest security-supported kernel from the operating system or appliance vendor and confirm the vendor advisory explicitly includes the fix for this issue. Where immediate patching is not possible, reduce exposure by restricting CAP_NET_ADMIN, disabling unprivileged user namespaces where not required, avoiding delegation of bridge/VLAN/MDB management to untrusted workloads, and limiting container or virtualization profiles that allow network administration. Consider disabling panic-on-warn behavior on systems where availability is more important than crash-on-warning diagnostics, while recognizing this only reduces outage impact and does not correct the kernel bug. Avoid unnecessary use of Linux bridge multicast snooping and multicast VLAN snooping on hosts that do not require those features.

How to confirm the fix worked

Confirm the running kernel package is at or above the vendor-fixed build that contains the bridge multicast MDB counter fix. Check vendor changelogs or kernel commit backports for language such as 'net: bridge: mcast: always update mdb_n_entries for vlan contexts'. Validate configuration exposure by identifying systems with Linux bridge modules loaded and bridges using VLAN filtering or multicast snooping. Review whether untrusted users, containers, CI jobs, or network automation have CAP_NET_ADMIN or equivalent permissions. In a non-production test environment only, attempt the documented bridge/MDB sequence and confirm the system no longer logs the WARN in br_multicast_port_ngroups_dec_one or br_multicast_del_pg. Also confirm that panic_on_warn is set according to operational policy.

Typical attack path

  1. Gain local execution on a Linux system or inside a network namespace with bridge-management privileges such as CAP_NET_ADMIN.
  2. Create or identify a Linux bridge using VLAN filtering and multicast snooping.
  3. Attach a network interface or dummy interface to the bridge.
  4. Add a multicast database entry for a VLAN, such as a permanent MDB group entry.
  5. Change the bridge link state and enable multicast VLAN snooping in a sequence that leaves the MDB entry counter unsynchronized.
  6. Flush MDB entries for the bridge.
  7. Trigger a kernel warning in the bridge multicast deletion path, potentially causing a panic or reboot if kernel warning panics are enabled.

How to detect it

Look for evidence in kernel logs and system journals that the bridge multicast warning path was triggered. Primary sources include dmesg output, journald kernel entries, /var/log/kern.log, /var/log/messages, /var/log/syslog, crash dumps, kdump artifacts, and host monitoring events for kernel WARN, OOPS, panic, or unexpected reboot. Search for WARN traces referencing net/bridge/br_multicast.c, br_multicast_port_ngroups_dec_one, br_multicast_del_pg, br_mdb_flush, br_mdb_del_bulk, rtnl_mdb_del, or the message 'n == 0'. Correlate those events with recent execution of bridge, ip, or network automation commands that create bridges, enable vlan_filtering, enable mcast_snooping or mcast_vlan_snooping, add MDB entries, or flush MDB entries. In containerized environments, review audit logs, container runtime logs, and orchestration events for workloads granted CAP_NET_ADMIN before the warning or reboot. If auditd is enabled, search for execution of /sbin/bridge, /usr/sbin/bridge, /sbin/ip, or /usr/sbin/ip with arguments involving 'mdb', 'flush', 'vlan_filtering', 'mcast_snooping', or 'mcast_vlan_snooping'.

  • WARNING: net/bridge/br_multicast.c:718
  • br_multicast_port_ngroups_dec_one
  • br_multicast_port_ngroups_dec
  • br_multicast_del_pg
  • br_mdb_flush_pgs
  • br_mdb_flush
  • br_mdb_del_bulk
  • rtnl_mdb_del
  • n == 0
  • bridge mdb flush
  • bridge mdb add
  • mcast_vlan_snooping 1
  • mcast_snooping 1
  • vlan_filtering 1
  • kernel.panic_on_warn
  • ------------[ cut here ]------------

What your security team should do

  • Inventory Linux systems that run kernel bridge networking, container networking, virtualization networking, or SDN components, especially where VLAN filtering and multicast snooping are enabled.
  • Patch affected Linux kernels using vendor security updates; prioritize multi-user systems and hosts that delegate network administration capabilities to containers, tenants, or automation.
  • Audit and remove unnecessary CAP_NET_ADMIN privileges from containers, services, build jobs, and user sessions.
  • Disable unprivileged user namespaces where they are not required, particularly on shared hosts.
  • Review sysctl kernel.panic_on_warn and crash policy to understand whether this warning can become an immediate reboot condition.
  • Search historical kernel logs for bridge multicast WARN traces to determine whether the condition has already been triggered.
  • Add monitoring for kernel WARN/OOPS events involving net/bridge/br_multicast.c and br_mdb_flush paths.
  • If patching is delayed, avoid enabling bridge multicast VLAN snooping on systems where untrusted users can affect bridge configuration.

The record

In the Linux kernel, the following vulnerability has been resolved: net: bridge: mcast: always update mdb_n_entries for vlan contexts syzbot triggered a warning[1] about the number of mdb entries in a context. It turned out that there are multiple ways to trigger that warning today (some got added during the years), the root cause of the problem is that the increase is done conditionally, and over the years these different conditions increased so there were new ways to trigger the warning, that is to do a decrease which wasn't paired with a previous increase. For example one way to trigger it is with flush: $ ip l add br0 up type bridge vlan_filtering 1 mcast_snooping 1 $ ip l add dumdum up master br0 type dummy $ bridge mdb add dev br0 port dumdum grp 239.0.0.1 permanent vid 1 $ ip link set dev br0 down $ ip link set dev br0 type bridge mcast_vlan_snooping 1 ^^^^ this will enable snooping, but will not update mdb_n_entries because in __br_multicast_enable_port_ctx() we check !netif_running $ bridge mdb flush dev br0 ^^^ this will trigger the warning because it will delete the pg which we added above, which will try to decrease mdb_n_entries Fix the problem by removing the conditional increase and always keep the count up-to-date while the vlan exists. In order to do that we have to first initialize it on port-vlan context creation, and then always increase or decrease the value regardless of mcast options. To keep the current behaviour we have to enforce the mdb limit only if the context is port's or if the port-vlan's mcast snooping is enabled. [1] ------------[ cut here ]------------ n == 0 WARNING: net/bridge/br_multicast.c:718 at br_multicast_port_ngroups_dec_one net/bridge/br_multicast.c:718 [inline], CPU#0: syz.4.4607/22043 WARNING: net/bridge/br_multicast.c:718 at br_multicast_port_ngroups_dec net/bridge/br_multicast.c:771 [inline], CPU#0: syz.4.4607/22043 WARNING: net/bridge/br_multicast.c:718 at br_multicast_del_pg+0x1bbe/0x1e20 net/bridge/br_multicast.c:825, CPU#0: syz.4.4607/22043 Modules linked in: CPU: 0 UID: 0 PID: 22043 Comm: syz.4.4607 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/24/2026 RIP: 0010:br_multicast_port_ngroups_dec_one net/bridge/br_multicast.c:718 [inline] RIP: 0010:br_multicast_port_ngroups_dec net/bridge/br_multicast.c:771 [inline] RIP: 0010:br_multicast_del_pg+0x1bbe/0x1e20 net/bridge/br_multicast.c:825 Code: 41 5f 5d e9 04 7a 48 f7 e8 3f 73 5c f7 90 0f 0b 90 e9 cf fd ff ff e8 31 73 5c f7 90 0f 0b 90 e9 16 fd ff ff e8 23 73 5c f7 90 <0f> 0b 90 e9 60 fd ff ff e8 15 73 5c f7 eb 05 e8 0e 73 5c f7 48 8b RSP: 0018:ffffc9000c207220 EFLAGS: 00010293 RAX: ffffffff8a68042d RBX: ffff88807c6f1800 RCX: ffff888066e90000 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 RBP: 0000000000000000 R08: ffff888066e90000 R09: 000000000000000c R10: 000000000000000c R11: 0000000000000000 R12: ffff8880303ef800 R13: dffffc0000000000 R14: ffff888050eb11c4 R15: 1ffff1100a1d6238 FS: 00007fa45921b6c0(0000) GS:ffff8881256f5000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fa4591f9ff8 CR3: 0000000081df2000 CR4: 00000000003526f0 Call Trace: <TASK> br_mdb_flush_pgs net/bridge/br_mdb.c:1525 [inline] br_mdb_flush net/bridge/br_mdb.c:1544 [inline] br_mdb_del_bulk+0x5e2/0xb20 net/bridge/br_mdb.c:1561 rtnl_mdb_del+0x48a/0x640 net/core/rtnetlink.c:-1 rtnetlink_rcv_msg+0x77e/0xbe0 net/core/rtnetlink.c:6967 netlink_rcv_skb+0x232/0x4b0 net/netlink/af_netlink.c:2550 netlink_unicast_kernel net/netlink/af_netlink.c:1318 [inline] netlink_unicast+0x80f/0x9b0 net/netlink/af_netlink.c:1344 netlink_sendmsg+0x813/0xb40 net/netlink/af_netlink.c:1894 sock_sendmsg_nosec net/socket.c:727 [inline] __sock_sendmsg net/socket.c:742 [inline] ____sys_sendmsg+0xa68/0xad0 net/socket.c:2592 ___sys_sendmsg+0x2a5/0x360 net/socke ---truncated---

Affected packages

Ecosystem Package Introduced Fixed