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

bonding: do not clear curr_active_slave prematurely when releasing all slaves

When releasing all slaves during bond destruction (all == true),
__bond_release_one() unconditionally clears bond->curr_active_slave to
NULL in every iteration.

If a backup slave is released before the active slave,
bond_alb_deinit_slave() triggers rlb_teach_disabled_mac_on_primary(),
which increments the active slave dev promiscuity counter and sets
bond_info->primary_is_promisc = 1.

Because bond->curr_active_slave was prematurely cleared to NULL when
releasing the backup slave, the subsequent iteration releasing the active
slave evaluates oldcurrent as NULL, so bond_change_active_slave(bond, NULL)
is skipped. Consequently, bond_alb_handle_active_change() is never called
to decrement the promiscuity counter, permanently leaking promiscuous
mode on the physical device after bond teardown.

When oldcurrent == slave, bond_change_active_slave(bond, NULL) already sets
bond->curr_active_slave to NULL. We only need to avoid selecting a new
active slave when all == true. Replace the if (all) branch with
if (!all && oldcurrent == slave).
Published: 2026-09-25
Score: n/a
EPSS: n/a
KEV: No
Impact: Persistent Promiscuous Mode on Physical Devices
Action: Patch Soon
AI Analysis

Impact

The vulnerability occurs during the shutdown of a Linux bonding interface. When all slave devices are released, the bonding code clears the active slave pointer too early. This causes the active slave’s promiscuous mode counter to never be decremented. As a result, the underlying physical interface remains in promiscuous mode even after the bond is torn down. Persistent promiscuous mode can allow the device to receive all network traffic, potentially exposing sensitive data to local attackers.

Affected Systems

All Linux kernels that use the bonding driver are affected. The issue was identified in the kernel’s bonding module and applies to any deployment that creates bond interfaces and later removes them, regardless of the specific Linux distribution or kernel version. Vendors that ship the unpatched kernel must release a kernel update that removes the premature clear of the active slave pointer.

Risk and Exploitability

The bug does not provide an obvious exploit for remote code execution but increases the attack surface for local and network attackers who can capture traffic on a host that no longer sets its interface to promiscuous mode after bond removal. The EPSS score is not available, and the vulnerability is not listed in CISA’s KEV catalog, indicating low publicly known exploitation. However, the CVSS score is not disclosed; the potential impact on confidentiality and integrity can be significant for systems that handle sensitive traffic. The likely attack vector is local or physical access to the host or exploitation of existing network privileges to reconfigure bonding interfaces.

Generated by OpenCVE AI on September 25, 2026 at 16:15 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest Linux kernel update that addresses the bonding driver bug.
  • Until an update is available, avoid tearing down bond interfaces; if you must, manually clear the promiscuous flag on the physical devices after removal.
  • Configure system scripts or network manager to reset promiscuous mode flags on all interfaces during system boot or upon bond removal events to prevent lingering promiscuous mode.

Generated by OpenCVE AI on September 25, 2026 at 16:15 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 25 Sep 2026 16:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-200

Fri, 25 Sep 2026 10:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: bonding: do not clear curr_active_slave prematurely when releasing all slaves When releasing all slaves during bond destruction (all == true), __bond_release_one() unconditionally clears bond->curr_active_slave to NULL in every iteration. If a backup slave is released before the active slave, bond_alb_deinit_slave() triggers rlb_teach_disabled_mac_on_primary(), which increments the active slave dev promiscuity counter and sets bond_info->primary_is_promisc = 1. Because bond->curr_active_slave was prematurely cleared to NULL when releasing the backup slave, the subsequent iteration releasing the active slave evaluates oldcurrent as NULL, so bond_change_active_slave(bond, NULL) is skipped. Consequently, bond_alb_handle_active_change() is never called to decrement the promiscuity counter, permanently leaking promiscuous mode on the physical device after bond teardown. When oldcurrent == slave, bond_change_active_slave(bond, NULL) already sets bond->curr_active_slave to NULL. We only need to avoid selecting a new active slave when all == true. Replace the if (all) branch with if (!all && oldcurrent == slave).
Title bonding: do not clear curr_active_slave prematurely when releasing all slaves
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-25T10:24:13.870Z

Reserved: 2026-09-25T10:19:56.074Z

Link: CVE-2026-98074

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:36.730

Modified: 2026-09-25T11:17:36.730

Link: CVE-2026-98074

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-25T16:30:15Z

Weaknesses
  • CWE-200

    Exposure of Sensitive Information to an Unauthorized Actor