CVE-2022-49667

net: bonding: fix use-after-free after 802.3ad slave unbind

High · published February 26, 2025

CVSS v3.1
7.8
EPSS
0%
Percentile
20.3
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

net: bonding: fix use-after-free after 802.3ad slave unbind

commit 0622cab0341c ("bonding: fix 802.3ad aggregator reselection"),

resolve case, when there is several aggregation groups in the same bond.

bond_3ad_unbind_slave will invalidate (clear) aggregator when

__agg_active_ports return zero. So, ad_clear_agg can be executed even, when

num_of_ports!=0. Than bond_3ad_unbind_slave can be executed again for,

previously cleared aggregator. NOTE: at this time bond_3ad_unbind_slave

will not update slave ports list, because lag_ports==NULL. So, here we

got slave ports, pointing to freed aggregator memory.

Fix with checking actual number of ports in group (as was before

commit 0622cab0341c ("bonding: fix 802.3ad aggregator reselection") ),

before ad_clear_agg().

The KASAN logs are as follows:

[ 767.617392] ==================================================================

[ 767.630776] BUG: KASAN: use-after-free in bond_3ad_state_machine_handler+0x13dc/0x1470

[ 767.638764] Read of size 2 at addr ffff00011ba9d430 by task kworker/u8:7/767

[ 767.647361] CPU: 3 PID: 767 Comm: kworker/u8:7 Tainted: G O 5.15.11 #15

[ 767.655329] Hardware name: DNI AmazonGo1 A7040 board (DT)

[ 767.660760] Workqueue: lacp_1 bond_3ad_state_machine_handler

[ 767.666468] Call trace:

[ 767.668930] dump_backtrace+0x0/0x2d0

[ 767.672625] show_stack+0x24/0x30

[ 767.675965] dump_stack_lvl+0x68/0x84

[ 767.679659] print_address_description.constprop.0+0x74/0x2b8

[ 767.685451] kasan_report+0x1f0/0x260

[ 767.689148] __asan_load2+0x94/0xd0

[ 767.692667] bond_3ad_state_machine_handler+0x13dc/0x1470

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00289 · 20.3th percentile
Published
2025-02-26T02:24Z
EPSS history
Timeline
  • 26 FEB 02:24Z
    net: bonding: fix use-after-free after 802.3ad slave unbind
    cvelistv5