Overview
About vulnerability
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:
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 ==================================================================
Details
- Affected product:
- AlmaLinux 9.2 ESU , CentOS 8.4 ELS , CentOS 8.5 ELS , CentOS Stream 8 ELS , TuxCare 9.6 ESU , Ubuntu 20.04 ELS
- Affected packages:
- kernel @ 4.18.0 (+6 more)
Fixes
KernelCare state
Live-patch status from KernelCare for each operating system.
| Operating system | Status | Covered kernels |
|---|---|---|
| AlmaLinux 10 | Released |
34 kernels
|
| AlmaLinux 8 | Released |
87 kernels
|
| AlmaLinux 9 | Released |
104 kernels
|
| AlmaLinux 9.2 ESU | Planned | — |
| Amazon Linux 2023 | Planned | — |
| CloudLinux OS 7h | Released |
82 kernels
|
| CloudLinux OS 8 | Released |
80 kernels
|
| Debian 13 | Released |
6 kernels
|
| Oracle Linux 10 | Released |
33 kernels
|
| Oracle Linux 8 | Released |
86 kernels
|
| Oracle Linux 9 | Released |
104 kernels
|
| Proxmox VE 7 5.15 | Released |
43 kernels
|
| RHEL 10 | Released |
35 kernels
|
| RHEL 8 | Released |
81 kernels
|
| RHEL 9 | Released |
101 kernels
|
| Rocky Linux 10 | Released |
25 kernels
|
| Rocky Linux 8 | Released |
73 kernels
|
| Rocky Linux 9 | Released |
84 kernels
|
| Ubuntu 20.04 HWE AWS | Released |
57 kernels
|
| Ubuntu 20.04 HWE Azure | Released |
40 kernels
|
| Ubuntu 22.04 | Released |
94 kernels
|
| Ubuntu 22.04 AWS | Released |
85 kernels
|
| Ubuntu 22.04 Azure | Released |
76 kernels
|
| Ubuntu 24.04 | Released |
43 kernels
|
| Ubuntu 24.04 AWS | Planned | — |