UBUNTU-CVE-2026-31419
In the Linux kernel, the following vulnerability has been resolved: net: bonding: fix use-after-free in bond_xmit_broadcast() bond_xmit_broadcast() reuses the original skb for the last slave (determined by bond_is_last_slave()) and clones it for others. Concurrent slave enslave/release can mutate the slave list during RCU-protected iteration, changing which slave is "last" mid-loop. This causes the original skb to be double-consumed (double-freed). Replace the racy bond_is_last_slave() check with a simple index comparison (i + 1 == slaves_count) against the pre-snapshot slave count taken via READ_ONCE() before the loop. This preserves the zero-copy optimization for the last slave while making the "last" determination stable against concurrent list mutations. The UAF can trigger the following crash: ================================================================== BUG: KASAN: slab-use-after-free in skb_clone Read of size 8 at addr ffff888100ef8d40 by task exploit/147 CPU: 1 UID: 0 PID: 147 Comm: exploit Not tainted 7.0.0-rc3+ #4 PREEMPTLAZY Call Trace: <TASK> dump_stack_lvl (lib/dump_stack.c:123) print_report (mm/kasan/report.c:379 mm/kasan/report.c:482) kasan_report (mm/kasan/report.c:597) skb_clone (include/linux/skbuff.h:1724 include/linux/skbuff.h:1792 include/linux/skbuff.h:3396 net/core/skbuff.c:2108) bond_xmit_broadcast (drivers/net/bonding/bond_main.c:5334) bond_start_xmit (drivers/net/bonding/bond_main.c:5567 drivers/net/bonding/bond_main.c:5593) dev_hard_start_xmit (include/linux/netdevice.h:5325 include/linux/netdevice.h:5334 net/core/dev.c:3871 net/core/dev.c:3887) __dev_queue_xmit (include/linux/netdevice.h:3601 net/core/dev.c:4838) ip6_finish_output2 (include/net/neighbour.h:540 include/net/neighbour.h:554 net/ipv6/ip6_output.c:136) ip6_finish_output (net/ipv6/ip6_output.c:208 net/ipv6/ip6_output.c:219) ip6_output (net/ipv6/ip6_output.c:250) ip6_send_skb (net/ipv6/ip6_output.c:1985) udp_v6_send_skb (net/ipv6/udp.c:1442) udpv6_sendmsg (net/ipv6/udp.c:1733) __sys_sendto (net/socket.c:730 net/socket.c:742 net/socket.c:2206) __x64_sys_sendto (net/socket.c:2209) do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) </TASK> Allocated by task 147: Freed by task 147: The buggy address belongs to the object at ffff888100ef8c80 which belongs to the cache skbuff_head_cache of size 224 The buggy address is located 192 bytes inside of freed 224-byte region [ffff888100ef8c80, ffff888100ef8d60) Memory state around the buggy address: ffff888100ef8c00: fb fb fb fb fc fc fc fc fc fc fc fc fc fc fc fc ffff888100ef8c80: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff888100ef8d00: fb fb fb fb fb fb fb fb fb fb fb fb fc fc fc fc ^ ffff888100ef8d80: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb ffff888100ef8e00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ==================================================================
02 / AFFECTED SOFTWARE
Affected packages
11 explicit affected versions
84 explicit affected versions
50 explicit affected versions
6 explicit affected versions
12 explicit affected versions
19 explicit affected versions
10 explicit affected versions
6 explicit affected versions
94 explicit affected versions
24 explicit affected versions
79 explicit affected versions
80 explicit affected versions
82 explicit affected versions
73 explicit affected versions
10 explicit affected versions
34 explicit affected versions
26 explicit affected versions
86 explicit affected versions
7 explicit affected versions
81 explicit affected versions
38 explicit affected versions
13 explicit affected versions
41 explicit affected versions
35 explicit affected versions
46 explicit affected versions
44 explicit affected versions
18 explicit affected versions
38 explicit affected versions
64 explicit affected versions
43 explicit affected versions
13 explicit affected versions
4 explicit affected versions
23 explicit affected versions
49 explicit affected versions
1 explicit affected versions
21 explicit affected versions
9 explicit affected versions
16 explicit affected versions
10 explicit affected versions
17 explicit affected versions
45 explicit affected versions
8 explicit affected versions
7 explicit affected versions
12 explicit affected versions
11 explicit affected versions
7 explicit affected versions
12 explicit affected versions
14 explicit affected versions
10 explicit affected versions
1 explicit affected versions
7 explicit affected versions
14 explicit affected versions
12 explicit affected versions
5 explicit affected versions
12 explicit affected versions
38 explicit affected versions
40 explicit affected versions
16 explicit affected versions
15 explicit affected versions
25 explicit affected versions
31 explicit affected versions
10 explicit affected versions
37 explicit affected versions
10 explicit affected versions
7 explicit affected versions
13 explicit affected versions
37 explicit affected versions
3 explicit affected versions
10 explicit affected versions
11 explicit affected versions
62 explicit affected versions
26 explicit affected versions
8 explicit affected versions
13 explicit affected versions
33 explicit affected versions
29 explicit affected versions
13 explicit affected versions
12 explicit affected versions
92 explicit affected versions
38 explicit affected versions
38 explicit affected versions
5 explicit affected versions
86 explicit affected versions
49 explicit affected versions
33 explicit affected versions
23 explicit affected versions
55 explicit affected versions
10 explicit affected versions
18 explicit affected versions
16 explicit affected versions
11 explicit affected versions
5 explicit affected versions
12 explicit affected versions
6 explicit affected versions
7 explicit affected versions
12 explicit affected versions
5 explicit affected versions
12 explicit affected versions
5 explicit affected versions
71 explicit affected versions
87 explicit affected versions
10 explicit affected versions
26 explicit affected versions
35 explicit affected versions
1 explicit affected versions
63 explicit affected versions
33 explicit affected versions
44 explicit affected versions
11 explicit affected versions
7 explicit affected versions
13 explicit affected versions
43 explicit affected versions
16 explicit affected versions
85 explicit affected versions
47 explicit affected versions
3 explicit affected versions
7 explicit affected versions
2 explicit affected versions
12 explicit affected versions
51 explicit affected versions
13 explicit affected versions
18 explicit affected versions
39 explicit affected versions
12 explicit affected versions
68 explicit affected versions
74 explicit affected versions
5 explicit affected versions
27 explicit affected versions
60 explicit affected versions
40 explicit affected versions
8 explicit affected versions
51 explicit affected versions
5 explicit affected versions
8 explicit affected versions
10 explicit affected versions
7 explicit affected versions
43 explicit affected versions
13 explicit affected versions
13 explicit affected versions
7 explicit affected versions
8 explicit affected versions
10 explicit affected versions
12 explicit affected versions
9 explicit affected versions
33 explicit affected versions
44 explicit affected versions
16 explicit affected versions
3 explicit affected versions
13 explicit affected versions
26 explicit affected versions
45 explicit affected versions
37 explicit affected versions
48 explicit affected versions
14 explicit affected versions
38 explicit affected versions
9 explicit affected versions
14 explicit affected versions
11 explicit affected versions
36 explicit affected versions
17 explicit affected versions
11 explicit affected versions
87 explicit affected versions
8 explicit affected versions
7 explicit affected versions
4 explicit affected versions
76 explicit affected versions
4 explicit affected versions
1 explicit affected versions
1 explicit affected versions
1 explicit affected versions
85 explicit affected versions
75 explicit affected versions
75 explicit affected versions
13 explicit affected versions
43 explicit affected versions
10 explicit affected versions
10 explicit affected versions
8 explicit affected versions
42 explicit affected versions
14 explicit affected versions
4 explicit affected versions
78 explicit affected versions
11 explicit affected versions
11 explicit affected versions
1 explicit affected versions
16 explicit affected versions
1 explicit affected versions
37 explicit affected versions
75 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
In the Linux kernel, the following vulnerability has been resolved: net: bonding: fix use-after-free in bond_xmit_broadcast() bond_xmit_broadcast() reuses the original skb for the last slave (determined by bond_is_last_slave()) and clones it for others. Concurrent slave enslave/release can mutate the slave list during RCU-protected iteration, changing which slave is "last" mid-loop. This causes the original skb to be double-consumed (double-freed). Replace the racy bond_is_last_slave() check with a simple index comparison (i + 1 == slaves_count) against the pre-snapshot slave count taken via READ_ONCE() before the loop. This preserves the zero-copy optimization for the last slave while making the "last" determination stable against concurrent list mutations. The UAF can trigger the following crash: ================================================================== BUG: KASAN: slab-use-after-free in skb_clone Read of size 8 at addr ffff888100ef8d40 by task exploit/147 CPU: 1 UID: 0 PID: 147 Comm: exploit Not tainted 7.0.0-rc3+ #4 PREEMPTLAZY Call Trace: <TASK> dump_stack_lvl (lib/dump_stack.c:123) print_report (mm/kasan/report.c:379 mm/kasan/report.c:482) kasan_report (mm/kasan/report.c:597) skb_clone (include/linux/skbuff.h:1724 include/linux/skbuff.h:1792 include/linux/skbuff.h:3396 net/core/skbuff.c:2108) bond_xmit_broadcast (drivers/net/bonding/bond_main.c:5334) bond_start_xmit (drivers/net/bonding/bond_main.c:5567 drivers/net/bonding/bond_main.c:5593) dev_hard_start_xmit (include/linux/netdevice.h:5325 include/linux/netdevice.h:5334 net/core/dev.c:3871 net/core/dev.c:3887) __dev_queue_xmit (include/linux/netdevice.h:3601 net/core/dev.c:4838) ip6_finish_output2 (include/net/neighbour.h:540 include/net/neighbour.h:554 net/ipv6/ip6_output.c:136) ip6_finish_output (net/ipv6/ip6_output.c:208 net/ipv6/ip6_output.c:219) ip6_output (net/ipv6/ip6_output.c:250) ip6_send_skb (net/ipv6/ip6_output.c:1985) udp_v6_send_skb (net/ipv6/udp.c:1442) udpv6_sendmsg (net/ipv6/udp.c:1733) __sys_sendto (net/socket.c:730 net/socket.c:742 net/socket.c:2206) __x64_sys_sendto (net/socket.c:2209) do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) </TASK> Allocated by task 147: Freed by task 147: The buggy address belongs to the object at ffff888100ef8c80 which belongs to the cache skbuff_head_cache of size 224 The buggy address is located 192 bytes inside of freed 224-byte region [ffff888100ef8c80, ffff888100ef8d60) Memory state around the buggy address: ffff888100ef8c00: fb fb fb fb fc fc fc fc fc fc fc fc fc fc fc fc ffff888100ef8c80: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff888100ef8d00: fb fb fb fb fb fb fb fb fb fb fb fb fc fc fc fc ^ ffff888100ef8d80: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb ffff888100ef8e00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ==================================================================
05 / REFERENCES
Further evidence
- https://git.kernel.org/linus/2884bf72fb8f03409e423397319205de48adca16
- https://ubuntu.com/security/CVE-2026-31419
- https://ubuntu.com/security/notices/USN-8277-1
- https://ubuntu.com/security/notices/USN-8277-2
- https://ubuntu.com/security/notices/USN-8278-1
- https://ubuntu.com/security/notices/USN-8278-2
- https://ubuntu.com/security/notices/USN-8279-1
- https://ubuntu.com/security/notices/USN-8279-2
- https://ubuntu.com/security/notices/USN-8279-3
- https://ubuntu.com/security/notices/USN-8289-1
- https://ubuntu.com/security/notices/USN-8289-2
- https://ubuntu.com/security/notices/USN-8305-1
- https://ubuntu.com/security/notices/USN-8305-2
- https://ubuntu.com/security/notices/USN-8310-1
- https://ubuntu.com/security/notices/USN-8350-1
- https://ubuntu.com/security/notices/USN-8351-1
- https://ubuntu.com/security/notices/USN-8374-1
- https://ubuntu.com/security/notices/USN-8393-1
- https://ubuntu.com/security/notices/USN-8426-1
- https://ubuntu.com/security/notices/USN-8426-2
- https://ubuntu.com/security/notices/USN-8440-1
- https://ubuntu.com/security/notices/USN-8462-1
- https://ubuntu.com/security/notices/USN-8499-1
- https://ubuntu.com/security/notices/USN-8508-1
- https://ubuntu.com/security/notices/USN-8528-1
- https://www.cve.org/CVERecord?id=CVE-2026-31419