[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025022623-CVE-2022-49667-4710@gregkh>
Date: Wed, 26 Feb 2025 03:23:50 +0100
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Subject: CVE-2022-49667: net: bonding: fix use-after-free after 802.3ad slave unbind
Description
===========
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 Linux kernel CVE team has assigned CVE-2022-49667 to this issue.
Affected and fixed versions
===========================
Issue introduced in 4.7 with commit 0622cab0341cac6b30da177b0faa39fae0680e71 and fixed in 4.9.322 with commit a853b7a3a9fd1d74a4ccdd9cd73512b7dace2f1e
Issue introduced in 4.7 with commit 0622cab0341cac6b30da177b0faa39fae0680e71 and fixed in 4.14.287 with commit b90ac60303063a43e17dd4aec159067599d255e6
Issue introduced in 4.7 with commit 0622cab0341cac6b30da177b0faa39fae0680e71 and fixed in 4.19.251 with commit f162f7c348fa2a5555bafdb5cc890b89b221e69c
Issue introduced in 4.7 with commit 0622cab0341cac6b30da177b0faa39fae0680e71 and fixed in 5.4.204 with commit 893825289ba840afd86bfffcb6f7f363c73efff8
Issue introduced in 4.7 with commit 0622cab0341cac6b30da177b0faa39fae0680e71 and fixed in 5.10.129 with commit 63b2fe509f69b90168a75e04e14573dccf7984e6
Issue introduced in 4.7 with commit 0622cab0341cac6b30da177b0faa39fae0680e71 and fixed in 5.15.53 with commit ef0af7d08d26c5333ff4944a559279464edf6f15
Issue introduced in 4.7 with commit 0622cab0341cac6b30da177b0faa39fae0680e71 and fixed in 5.18.10 with commit 2765749def4765c5052a4c66445cf4c96fcccdbc
Issue introduced in 4.7 with commit 0622cab0341cac6b30da177b0faa39fae0680e71 and fixed in 5.19 with commit 050133e1aa2cb49bb17be847d48a4431598ef562
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-2022-49667
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:
drivers/net/bonding/bond_3ad.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/a853b7a3a9fd1d74a4ccdd9cd73512b7dace2f1e
https://git.kernel.org/stable/c/b90ac60303063a43e17dd4aec159067599d255e6
https://git.kernel.org/stable/c/f162f7c348fa2a5555bafdb5cc890b89b221e69c
https://git.kernel.org/stable/c/893825289ba840afd86bfffcb6f7f363c73efff8
https://git.kernel.org/stable/c/63b2fe509f69b90168a75e04e14573dccf7984e6
https://git.kernel.org/stable/c/ef0af7d08d26c5333ff4944a559279464edf6f15
https://git.kernel.org/stable/c/2765749def4765c5052a4c66445cf4c96fcccdbc
https://git.kernel.org/stable/c/050133e1aa2cb49bb17be847d48a4431598ef562
Powered by blists - more mailing lists