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); bondalb_monitor() was the only one acting on the pre-trylock decision.
{
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/74xxx/CVE-2026-74726.json"
}