[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2024102133-CVE-2024-50041-6118@gregkh>
Date: Mon, 21 Oct 2024 21:39:47 +0200
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Subject: CVE-2024-50041: i40e: Fix macvlan leak by synchronizing access to mac_filter_hash
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
i40e: Fix macvlan leak by synchronizing access to mac_filter_hash
This patch addresses a macvlan leak issue in the i40e driver caused by
concurrent access to vsi->mac_filter_hash. The leak occurs when multiple
threads attempt to modify the mac_filter_hash simultaneously, leading to
inconsistent state and potential memory leaks.
To fix this, we now wrap the calls to i40e_del_mac_filter() and zeroing
vf->default_lan_addr.addr with spin_lock/unlock_bh(&vsi->mac_filter_hash_lock),
ensuring atomic operations and preventing concurrent access.
Additionally, we add lockdep_assert_held(&vsi->mac_filter_hash_lock) in
i40e_add_mac_filter() to help catch similar issues in the future.
Reproduction steps:
1. Spawn VFs and configure port vlan on them.
2. Trigger concurrent macvlan operations (e.g., adding and deleting
portvlan and/or mac filters).
3. Observe the potential memory leak and inconsistent state in the
mac_filter_hash.
This synchronization ensures the integrity of the mac_filter_hash and prevents
the described leak.
The Linux kernel CVE team has assigned CVE-2024-50041 to this issue.
Affected and fixed versions
===========================
Issue introduced in 5.15.54 with commit ddec6cbbe227 and fixed in 5.15.168 with commit 9db6ce9e2738
Issue introduced in 5.19 with commit fed0d9f13266 and fixed in 6.1.113 with commit 9a9747288ba0
Issue introduced in 5.19 with commit fed0d9f13266 and fixed in 6.6.57 with commit 703c4d820b31
Issue introduced in 5.19 with commit fed0d9f13266 and fixed in 6.11.4 with commit 8831abff1bd5
Issue introduced in 5.19 with commit fed0d9f13266 and fixed in 6.12-rc3 with commit dac6c7b3d337
Issue introduced in 5.18.11 with commit 8bfcbaa37969
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-2024-50041
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/ethernet/intel/i40e/i40e_main.c
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.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/9db6ce9e2738b05a3672aff4d42169cf3bb5a3e3
https://git.kernel.org/stable/c/9a9747288ba0a9ad4f5c9877f18dd245770ad64e
https://git.kernel.org/stable/c/703c4d820b31bcadf465288d5746c53445f02a55
https://git.kernel.org/stable/c/8831abff1bd5b6bc8224f0c0671f46fbd702b5b2
https://git.kernel.org/stable/c/dac6c7b3d33756d6ce09f00a96ea2ecd79fae9fb
Powered by blists - more mailing lists