HIGH 7.5

CVE-2026-53069: Linux Kernel XDP Null Pointer Dereference in Bond Redirect

A flaw in the Linux kernel's XDP (eXpress Data Path) networking code can crash a system when specific network bonding configurations are exploited. The vulnerability occurs because XDP redirect operations assume bonding devices are fully initialized, but they may not be if the bond was never activated. When an XDP program attempts to redirect traffic through an inactive bond, the kernel tries to access memory structures that were never allocated, causing a null pointer dereference and kernel panic. This affects any Linux system running both bonded network interfaces and XDP-based traffic filtering or forwarding.

Source data · NVD / CISA · public domain

CVSS
3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weaknesses (CWE)
CWE-476
Affected products
1 configuration(s)
Published / Modified
2026-06-24 / 2026-07-21

NVD description (verbatim)

In the Linux kernel, the following vulnerability has been resolved: net, bpf: fix null-ptr-deref in xdp_master_redirect() for down master syzkaller reported a kernel panic in bond_rr_gen_slave_id() reached via xdp_master_redirect(). Full decoded trace: https://syzkaller.appspot.com/bug?extid=80e046b8da2820b6ba73 bond_rr_gen_slave_id() dereferences bond->rr_tx_counter, a per-CPU counter that bonding only allocates in bond_open() when the mode is round-robin. If the bond device was never brought up, rr_tx_counter stays NULL. The XDP redirect path can still reach that code on a bond that was never opened: bpf_master_redirect_enabled_key is a global static key, so as soon as any bond device has native XDP attached, the XDP_TX -> xdp_master_redirect() interception is enabled for every slave system-wide. The path xdp_master_redirect() -> bond_xdp_get_xmit_slave() -> bond_xdp_xmit_roundrobin_slave_get() -> bond_rr_gen_slave_id() then runs against a bond that has no rr_tx_counter and crashes. Fix this in the generic xdp_master_redirect() by refusing to call into the master's ->ndo_xdp_get_xmit_slave() when the master device is not up. IFF_UP is only set after ->ndo_open() has successfully returned, so this reliably excludes masters whose XDP state has not been fully initialized. Drop the frame with XDP_ABORTED so the exception is visible via trace_xdp_exception() rather than silently falling through. This is not specific to bonding: any current or future master that defers XDP state allocation to ->ndo_open() is protected.

7 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability lies in xdp_master_redirect(), which handles XDP packet redirection to master network devices. When bonding is configured in round-robin mode, the bond allocates a per-CPU counter (rr_tx_counter) only during device activation via bond_open(). However, the bpf_master_redirect_enabled_key static key is global: once any bond device in the system has native XDP attached, the XDP_TX interception is enabled system-wide for all slaves. The code path xdp_master_redirect() → bond_xdp_get_xmit_slave() → bond_xdp_xmit_roundrobin_slave_get() → bond_rr_gen_slave_id() will execute against a bond without rr_tx_counter if that bond was never brought up (IFF_UP flag not set). The fix checks the master device's IFF_UP flag before invoking ndo_xdp_get_xmit_slave(), rejecting frames with XDP_ABORTED for visibility via trace_xdp_exception() rather than silent failure. This protects not only bonding but any master device deferring XDP state allocation to ndo_open().

Business impact

Denial of service via kernel panic represents a critical availability risk for production environments. Any system deploying XDP-based network functions (load balancing, traffic filtering, DDoS mitigation) combined with bonded interfaces is vulnerable to unexpected crashes triggered by legitimate or malicious XDP programs. The crash leaves no graceful degradation; the entire kernel panics, requiring reboot and potential data loss if unclean shutdown occurs. Organizations relying on eBPF/XDP for traffic steering must patch promptly to maintain service continuity.

Affected systems

All Linux kernel versions supporting XDP redirection to bonded interfaces are affected. The vulnerability is exploitable on any system with: (1) bonded network interfaces configured but not activated, and (2) any XDP program attached to slave devices or globally enabled XDP interception. This includes systems using eBPF-based load balancers, container networking solutions leveraging XDP, or cloud infrastructure deploying XDP for packet steering. The generic fix in xdp_master_redirect() protects against not only bonding but any current or future master device deferring XDP state allocation to ndo_open().

Exploitability

Exploitation requires local code execution capability to attach or trigger an XDP program on the system. An unprivileged user cannot directly load eBPF programs; this requires CAP_BPF and CAP_PERFMON (or CAP_SYS_ADMIN on older kernels). However, the vulnerability can be triggered by a privileged attacker or from within a container with relaxed capabilities. The crash is deterministic if the conditions align (bonded interface down, XDP program present), making it a reliable denial-of-service vector rather than a probabilistic race condition. No exploit code or complex spray techniques are needed; straightforward XDP attachment to a slave of an inactive bond will panic the kernel.

Remediation

Apply the kernel patch that adds an IFF_UP check in xdp_master_redirect() before calling the master's ndo_xdp_get_xmit_slave(). This ensures XDP redirection is only attempted on fully initialized devices. Verify against the official Linux kernel repository and your distribution's advisory for the exact patch version and backport availability. Interim mitigation: disable XDP on systems with inactive bonded interfaces, or ensure all bonded devices are brought up before enabling XDP. Long-term: update to a patched kernel version once available for your distribution.

Patch guidance

Patch availability depends on your Linux distribution and kernel version. Check your vendor's security advisory (Red Hat, Ubuntu, Debian, SUSE, etc.) for backported versions of this fix. The upstream fix is expected to land in the mainline Linux kernel; verify the patch hash and changelog against the official kernel.org repository to ensure authenticity. If your distribution has not yet released a patched kernel, consult the vendor's timeline and consider interim mitigations. Test patches in a non-production environment before deployment to validate compatibility with your XDP workloads.

Detection guidance

Monitor kernel logs and dmesg for BUG/panic messages mentioning bond_rr_gen_slave_id() or null-ptr-deref in xdp_master_redirect(). Enable kernel tracing (trace_xdp_exception) to catch XDP_ABORTED frames post-patch, which will indicate frames rejected due to an inactive master device. Audit XDP program loading via bpftool or /proc/sys/kernel/bpf/stats_enabled to understand which programs are attached. Review network configuration to identify bonded interfaces that are configured but not activated; bringing them up will eliminate the vulnerability window. On systems still vulnerable, collect kdump or netconsole output from panic events for forensic analysis.

Why prioritize this

This is a high-severity kernel vulnerability affecting availability with a CVSS score of 7.5. It requires no user interaction and can be triggered by any user with capability to load eBPF programs. The panic is triggered by legitimate XDP operations on a realistic (albeit often misconfigured) network setup: bonded interfaces that have never been brought up. Organizations deploying XDP for traffic management should treat this as urgent. The fix is surgical and low-risk, making prompt patching feasible without operational delays.

Risk score, explained

CVSS 7.5 (HIGH) reflects a network-accessible denial-of-service vector with no authentication or user interaction required, affecting availability (A:H) but not confidentiality or integrity (C:N, I:N). The attack complexity is low (AC:L), meaning the vulnerability is straightforward to trigger once the preconditions (inactive bond + XDP attachment) are present. The scope is unchanged (S:U), affecting only the vulnerable system. The score does not account for the need for local privilege to attach XDP; in shared or container environments, effective exploitability increases.

Frequently asked questions

Do I need bonded interfaces for this vulnerability to affect me?

Not strictly. The vulnerability requires an XDP program to be attached or enabled system-wide on at least one bond device. If any bonded interface in your system has XDP attached, the redirection interception is enabled globally via the static key. However, the crash only happens if a packet path hits a bonded interface that is not up (IFF_UP flag not set). Most production bonds are brought up, but misconfigured or temporary bonds may not be.

Will this crash my system if I have bonded interfaces but no XDP programs?

No. The vulnerability requires both XDP attachment and an inactive bonded interface. If you do not use eBPF/XDP for traffic steering or filtering, you are not at risk, even with bonded interfaces. Conversely, if you use XDP but all bonded interfaces are properly activated (IFF_UP), you are also safe.

Is this vulnerability exploitable remotely, or does it require local access?

Exploitation requires local code execution capability to load an eBPF/XDP program, which needs CAP_BPF/CAP_PERFMON or CAP_SYS_ADMIN privileges. You cannot trigger this crash remotely over the network. However, in multi-tenant or container environments where users have these capabilities, the risk is higher.

What is the difference between the fix and just disabling XDP?

The fix ensures XDP redirection is safe regardless of master device state by checking IFF_UP before calling driver-specific redirect handlers. Disabling XDP entirely eliminates the attack surface but also removes your XDP-based traffic management or filtering capabilities. The fix restores both safety and functionality, so patching is preferable to disabling XDP.

This analysis is based on the provided CVE details and does not constitute a comprehensive security audit or guarantee of patch availability. Actual patch version numbers, distribution timelines, and compatibility must be verified against official vendor advisories. CVSS scores and vulnerability metadata are subject to change; always consult the authoritative source (NVD, vendor advisory) for the most current information. Mitigation strategies are general guidance; test thoroughly in your specific environment before applying to production systems. If you operate systems potentially affected by this vulnerability, coordinate with your vendor or distribution maintainer for timely patching. Source: NVD (public-domain), retrieved 2026-08-01. Analysis generated by SEC.co (claude-haiku-4-5).