CVE-2026-23310 Overview
A vulnerability has been discovered in the Linux kernel's bonding driver that allows an inconsistent state to occur when changing the xmit_hash_policy to vlan+srcmac while an XDP (eXpress Data Path) program is loaded. This race condition can lead to a system warning and potentially impact network bonding stability when the bond interface is destroyed.
The vulnerability exists in the bond_option_xmit_hash_policy_set() function, which lacks the proper guard that exists in bond_option_mode_set(). This allows users to modify the transmit hash policy to an incompatible configuration after an XDP program has already been attached to the bond interface.
Critical Impact
Attackers with local access can cause kernel warnings and potentially disrupt network bonding operations by exploiting the missing policy validation check, affecting systems using 802.3ad or balance-xor bonding modes with XDP programs.
Affected Products
- Linux Kernel (bonding driver with XDP support)
- Systems using 802.3ad bonding mode with XDP programs
- Systems using balance-xor bonding mode with XDP programs
Discovery Timeline
- 2026-03-25 - CVE-2026-23310 published to NVD
- 2026-03-25 - Last updated in NVD database
Technical Details for CVE-2026-23310
Vulnerability Analysis
This vulnerability stems from an incomplete implementation of XDP compatibility checks in the Linux kernel's bonding driver. The bond_xdp_check() function correctly validates XDP program compatibility during attachment through bond_xdp_set(), but the symmetric operation—preventing xmit_hash_policy changes to incompatible values after XDP is loaded—was left unguarded.
When operating in 802.3ad or balance-xor modes, the bond_xdp_check() function returns false if xmit_hash_policy is set to vlan+srcmac, as the 802.1q VLAN payload is typically absent due to hardware offloading. The vulnerability allows this incompatible state to be reached after XDP attachment.
The practical impact occurs during bond destruction: dev_xdp_uninstall() attempts to remove the XDP program by calling bond_xdp_set(dev, NULL, NULL), which encounters the bond_xdp_check() guard and returns -EOPNOTSUPP. This triggers the kernel warning via WARN_ON(dev_xdp_install(...)).
Root Cause
The root cause is a missing validation check in bond_option_xmit_hash_policy_set() that should prevent changing the hash policy to vlan+srcmac when an XDP program is loaded on a bond device configured in 802.3ad or balance-xor mode.
While commit 39a0876d595b ("net, bonding: Disallow vlan+srcmac with XDP") introduced the bond_xdp_check() function to reject XDP attachment with incompatible policies, and commit 094ee6017ea0 ("bonding: check xdp prog when set bond mode") added a similar guard to bond_option_mode_set(), the bond_option_xmit_hash_policy_set() function remained unprotected.
Attack Vector
The attack requires local access with sufficient privileges to modify bonding interface configurations. An attacker can exploit this vulnerability through the following sequence:
- Attach a native XDP program to a bond interface configured in 802.3ad or balance-xor mode with a compatible xmit_hash_policy (such as layer2+3)
- Change the xmit_hash_policy to vlan+srcmac while the XDP program remains loaded
- This creates an inconsistent state where bond->xdp_prog is set but bond_xdp_check() returns false
- When the bond is subsequently destroyed, the kernel triggers a WARN_ON condition
Detection Methods for CVE-2026-23310
Indicators of Compromise
- Kernel warning messages containing WARN_ON(dev_xdp_install in system logs
- Unexpected bonding interface failures during interface teardown
- Kernel log entries related to XDP program removal failures on bond devices
Detection Strategies
- Monitor system logs for kernel warnings involving bond_xdp_set or dev_xdp_install functions
- Audit configuration changes to bonding interfaces, particularly xmit_hash_policy modifications
- Track XDP program attachment and detachment events on bonded network interfaces
- Implement monitoring for bond interface destruction failures
Monitoring Recommendations
- Configure kernel log monitoring to alert on bonding driver warnings
- Implement automated auditing of network interface configuration changes
- Use SentinelOne's kernel-level monitoring to detect unusual bonding driver behavior
- Establish baseline network bonding configurations and alert on deviations
How to Mitigate CVE-2026-23310
Immediate Actions Required
- Apply the kernel patches from the stable kernel branches immediately
- Avoid changing xmit_hash_policy to vlan+srcmac on bond interfaces with active XDP programs
- Review current bonding configurations to identify potentially affected systems
- Consider temporarily removing XDP programs from bonds in 802.3ad or balance-xor mode until patched
Patch Information
The Linux kernel maintainers have released patches across multiple stable branches to address this vulnerability. The fix adds the missing validation check to bond_option_xmit_hash_policy_set() to reject xmit_hash_policy changes to vlan+srcmac when an XDP program is loaded.
Patches are available from the following kernel git commits:
- Kernel Git Commit 0ace8027
- Kernel Git Commit 479d589b
- Kernel Git Commit 5c262bd0
- Kernel Git Commit d36ad7e1
- Kernel Git Commit e85fa809
Workarounds
- Detach XDP programs from bond interfaces before modifying the xmit_hash_policy
- Use alternative hash policies (such as layer2+3 or layer3+4) that remain compatible with XDP
- Implement operational procedures to prevent xmit_hash_policy changes while XDP programs are attached
- Consider using alternative network architectures that don't require bonding with XDP for critical systems
# Check for XDP programs on bond interfaces before policy changes
ip link show dev bond0 | grep -i xdp
# If XDP is attached, detach before changing hash policy
ip link set dev bond0 xdp off
# Now safely change the hash policy
echo "vlan+srcmac" > /sys/class/net/bond0/bonding/xmit_hash_policy
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


