CVE-2024-36007: mlxsw: spectrum_acl_tcam: Fix warning during rehash
In the Linux kernel, the following vulnerability has been resolved:
mlxsw: spectrumacltcam: Fix warning during rehash
As previously explained, the rehash delayed work migrates filters from one region to another. This is done by iterating over all chunks (all the filters with the same priority) in the region and in each chunk iterating over all the filters.
When the work runs out of credits it stores the current chunk and entry as markers in the per-work context so that it would know where to resume the migration from the next time the work is scheduled.
Upon error, the chunk marker is reset to NULL, but without resetting the entry markers despite being relative to it. This can result in migration being resumed from an entry that does not belong to the chunk being migrated. In turn, this will eventually lead to a chunk being iterated over as if it is an entry. Because of how the two structures happen to be defined, this does not lead to KASAN splats, but to warnings such as [1].
Fix by creating a helper that resets all the markers and call it from all the places the currently only reset the chunk marker. For good measures also call it when starting a completely new rehash. Add a warning to avoid future cases.
[1] WARNING: CPU: 7 PID: 1076 at drivers/net/ethernet/mellanox/mlxsw/coreaclflexkeys.c:407 mlxswafkencode+0x242/0x2f0 Modules linked in: CPU: 7 PID: 1076 Comm: kworker/7:24 Tainted: G W 6.9.0-rc3-custom-00880-g29e61d91b77b #29 Hardware name: Mellanox Technologies Ltd. MSN3700/VMOD0005, BIOS 5.11 01/06/2019 Workqueue: mlxswcore mlxswspacltcamvregionrehashwork RIP: 0010:mlxswafkencode+0x242/0x2f0 [...] Call Trace: mlxswspaclatcamentryadd+0xd9/0x3c0 mlxswspacltcamentrycreate+0x5e/0xa0 mlxswspacltcamvchunkmigrateall+0x109/0x290 mlxswspacltcamvregionrehashwork+0x6c/0x470 processonework+0x151/0x370 workerthread+0x2cb/0x3e0 kthread+0xd0/0x100 retfromfork+0x34/0x50
Other sources
In the Linux kernel, the following vulnerability has been resolved:
mlxsw: spectrumacltcam: Fix warning during rehash
As previously explained, the rehash delayed work migrates filters from one region to another. This is done by iterating over all chunks (all the filters with the same priority) in the region and in each chunk iterating over all the filters.
When the work runs out of credits it stores the current chunk and entry as markers in the per-work context so that it would know where to resume the migration from the next time the work is scheduled.
Upon error, the chunk marker is reset to NULL, but without resetting the entry markers despite being relative to it. This can result in migration being resumed from an entry that does not belong to the chunk being migrated. In turn, this will eventually lead to a chunk being iterated over as if it is an entry. Because of how the two structures happen to be defined, this does not lead to KASAN splats, but to warnings such as [1].
Fix by creating a helper that resets all the markers and call it from all the places the currently only reset the chunk marker. For good measures also call it when starting a completely new rehash. Add a warning to avoid future cases.
[1] WARNING: CPU: 7 PID: 1076 at drivers/net/ethernet/mellanox/mlxsw/coreaclflexkeys.c:407 mlxswafkencode+0x242/0x2f0 Modules linked in: CPU: 7 PID: 1076 Comm: kworker/7:24 Tainted: G W 6.9.0-rc3-custom-00880-g29e61d91b77b #29 Hardware name: Mellanox Technologies Ltd. MSN3700/VMOD0005, BIOS 5.11 01/06/2019 Workqueue: mlxswcore mlxswspacltcamvregionrehashwork RIP: 0010:mlxswafkencode+0x242/0x2f0 [...] Call Trace: <TASK> mlxswspaclatcamentryadd+0xd9/0x3c0 mlxswspacltcamentrycreate+0x5e/0xa0 mlxswspacltcamvchunkmigrateall+0x109/0x290 mlxswspacltcamvregionrehashwork+0x6c/0x470 processonework+0x151/0x370 workerthread+0x2cb/0x3e0 kthread+0xd0/0x100 retfromfork+0x34/0x50 </TASK>
— NVD
In the Linux kernel, the following vulnerability has been resolved:
mlxsw: spectrumacltcam: Fix warning during rehash
The Linux kernel CVE team has assigned CVE-2024-36007 to this issue.
Upstream advisory: https://lore.kernel.org/linux-cve-announce/2024052025-CVE-2024-36007-052e@gregkh/T
— Red Hat
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2024-36007?
CVE-2024-36007 has a medium severity rating due to potential impacts during filter rehashing.
How do I fix CVE-2024-36007?
To resolve CVE-2024-36007, upgrade to the fixed versions of the Linux kernel specified, such as 5.4.275 or later.
Which Linux kernel versions are affected by CVE-2024-36007?
CVE-2024-36007 affects several kernel versions including 5.4 before 5.4.275, 5.10 before 5.10.216, and others listed by Red Hat and Debian.
What is the nature of the vulnerability in CVE-2024-36007?
CVE-2024-36007 involves a warning triggered during the rehash process of ACL filters in the Linux kernel.
Who is impacted by CVE-2024-36007?
Users and administrators running affected versions of the Linux kernel, particularly those managing network filters, are impacted by CVE-2024-36007.