CVE-2026-64545: net, bpf: check master for NULL in xdp_master_redirect()
Greg Kroah-Hartman <[email protected]> Mon, 27 Jul 2026 22:10:43 +0200
| Newsgroups | org.kernel.vger.linux-cve-announce |
|---|---|
| Message-ID | <2026072736-CVE-2026-64545-25d6@gregkh> |
From: Greg Kroah-Hartman <[email protected]> Description =========== In the Linux kernel, the following vulnerability has been resolved: net, bpf: check master for NULL in xdp_master_redirect() xdp_master_redirect() dereferences the result of netdev_master_upper_dev_get_rcu() without a NULL check, but that helper returns NULL when the receiving device has no upper-master adjacency. The reach guard only checks netif_is_bond_slave(). On bond slave release bond_upper_dev_unlink() drops the upper-master adjacency before clearing IFF_SLAVE, so an XDP_TX reaching xdp_master_redirect() in that window still passes netif_is_bond_slave() while master is already NULL, and faults on master->flags at offset 0xb0: BUG: kernel NULL pointer dereference, address: 00000000000000b0 RIP: 0010:xdp_master_redirect (net/core/filter.c:4432) Call Trace: xdp_master_redirect (net/core/filter.c:4432) bpf_prog_run_generic_xdp (include/net/xdp.h:700) do_xdp_generic (net/core/dev.c:5608) __netif_receive_skb_one_core (net/core/dev.c:6204) process_backlog (net/core/dev.c:6319) __napi_poll (net/core/dev.c:7729) net_rx_action (net/core/dev.c:7792) handle_softirqs (kernel/softirq.c:622) __dev_queue_xmit (include/linux/bottom_half.h:33) packet_sendmsg (net/packet/af_packet.c:3082) __sys_sendto (net/socket.c:2252) Kernel panic - not syncing: Fatal exception in interrupt The missing check dates back to the original code; commit 1921f91298d1 ("net, bpf: fix null-ptr-deref in xdp_master_redirect() for down master") later added the master->flags read where the fault now lands but kept the unconditional deref. Check master for NULL before use; a NULL master is treated the same as one that is not up. The Linux kernel CVE team has assigned CVE-2026-64545 to this issue. Affected and fixed versions =========================== Issue introduced in 5.15 with commit 879af96ffd72706c6e3278ea6b45b0b0e37ec5d7 and fixed in 5.15.212 with commit c99ca049e910d61ddbd28cc2c47242f2bfbb4970 Issue introduced in 5.15 with commit 879af96ffd72706c6e3278ea6b45b0b0e37ec5d7 and fixed in 6.1.178 with commit e2a56441233131fe18a76001de347ecda217e40c Issue introduced in 5.15 with commit 879af96ffd72706c6e3278ea6b45b0b0e37ec5d7 and fixed in 6.6.145 with commit 3876318ea54e83eb70982b8280a3c5e4e32269bf Issue introduced in 5.15 with commit 879af96ffd72706c6e3278ea6b45b0b0e37ec5d7 and fixed in 6.12.97 with commit 4edbcacca09f92b85d3951b6add11894b20a84bc Issue introduced in 5.15 with commit 879af96ffd72706c6e3278ea6b45b0b0e37ec5d7 and fixed in 6.18.40 with commit 03b743586a2469744e96e9c1015096d07240935d Issue introduced in 5.15 with commit 879af96ffd72706c6e3278ea6b45b0b0e37ec5d7 and fixed in 7.1.5 with commit 89c103d702b25ceb2d097faf854deb47b53b17ff Issue introduced in 5.15 with commit 879af96ffd72706c6e3278ea6b45b0b0e37ec5d7 and fixed in 7.2-rc1 with commit e82d8cc4321c373dc46e741cd2dfdaa7921fddb7 Please see https://www.kernel.org for a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2026-64545 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: net/core/filter.c Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: https://git.kernel.org/stable/c/c99ca049e910d61ddbd28cc2c47242f2bfbb4970 https://git.kernel.org/stable/c/e2a56441233131fe18a76001de347ecda217e40c https://git.kernel.org/stable/c/3876318ea54e83eb70982b8280a3c5e4e32269bf https://git.kernel.org/stable/c/4edbcacca09f92b85d3951b6add11894b20a84bc https://git.kernel.org/stable/c/03b743586a2469744e96e9c1015096d07240935d https://git.kernel.org/stable/c/89c103d702b25ceb2d097faf854deb47b53b17ff https://git.kernel.org/stable/c/e82d8cc4321c373dc46e741cd2dfdaa7921fddb7