CVE-2026-74726: bonding: alb: re-check primary_is_promisc under RTNL in bond_alb_monitor

Published Aug 22, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

bonding: alb: re-check primaryispromisc under RTNL in bondalbmonitor

bondalbmonitor() reads primaryispromisc under RCU, then drops RCU and takes RTNL via rtnltrylock() before undoing the promiscuity it set on the active slave. In that window the active slave can change under RTNL (RTMDELLINK -> bondreleaseone() -> bondalbhandleactivechange()), which already drops the promiscuity and clears primaryispromisc. The monitor still acts on the stale decision: if the slave was removed with no failover, curractiveslave is now NULL and the deref faults; if it failed over, the stale devsetpromiscuity(-1) underflows the new slave's promiscuity counter and pins it in IFFPROMISC.

Oops: general protection fault, probably for non-canonical address ... KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007] Workqueue: b42 bondalbmonitor RIP: 0010:bondalbmonitor (drivers/net/bonding/bondalb.c:1600) processonework (kernel/workqueue.c:3322) workerthread (kernel/workqueue.c:3486) kthread (kernel/kthread.c:436) retfromfork (arch/x86/kernel/process.c:158) Kernel panic - not syncing: Fatal exception

Re-check primaryispromisc (and curractiveslave) after taking RTNL so the monitor only undoes an increment it still owns. The other bonding monitors already re-read state under RTNL in their commit phase (bondmiimoncommit/bondabarpcommit); bondalbmonitor() was the only one acting on the pre-trylock decision.

Affected Software

1 affected component
Linux Linux kernel

Event History

Aug 22, 2026
CVE Published
via MITRE·03:33 PM
Data Sourced
via MITRE·03:33 PM
Description
Data Sourced
via NVD·04:16 PM
Description

Frequently Asked Questions

1

Which systems are exposed to this race condition?

Systems using Linux kernel bonding in active load balancing (ALB) mode are exposed when the active slave can be removed or changed while bond_alb_monitor() is running. The issue concerns changes made under RTNL, including RTM_DELLINK-driven slave removal.

2

What conditions trigger the failure?

The race requires bond_alb_monitor() to decide that it must remove promiscuous mode from the active slave, then lose RCU protection before obtaining RTNL. During that interval, the active slave must be removed or changed, causing the monitor to act on stale state.

3

What is the practical impact if the race occurs?

If the active slave is removed without failover, the monitor can dereference a NULL curr_active_slave and crash the kernel. If failover occurs, it can decrement the replacement slave's promiscuity counter incorrectly, leaving that interface stuck in promiscuous mode.

4

How can administrators recognize that the system has already hit this issue?

Affected systems may log a KASAN null-pointer dereference or general protection fault in bond_alb_monitor(), potentially followed by a kernel panic. Another indication is a replacement active slave remaining in IFF_PROMISC after a failover or slave removal.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203