CVE-2024-35855
Severity CVSS v4.0:
Pending analysis
Type:
CWE-416
Use After Free
Publication date:
17/05/2024
Last modified:
30/12/2024
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
mlxsw: spectrum_acl_tcam: Fix possible use-after-free during activity update<br />
<br />
The rule activity update delayed work periodically traverses the list of<br />
configured rules and queries their activity from the device.<br />
<br />
As part of this task it accesses the entry pointed by &#39;ventry->entry&#39;,<br />
but this entry can be changed concurrently by the rehash delayed work,<br />
leading to a use-after-free [1].<br />
<br />
Fix by closing the race and perform the activity query under the<br />
&#39;vregion->lock&#39; mutex.<br />
<br />
[1]<br />
BUG: KASAN: slab-use-after-free in mlxsw_sp_acl_tcam_flower_rule_activity_get+0x121/0x140<br />
Read of size 8 at addr ffff8881054ed808 by task kworker/0:18/181<br />
<br />
CPU: 0 PID: 181 Comm: kworker/0:18 Not tainted 6.9.0-rc2-custom-00781-gd5ab772d32f7 #2<br />
Hardware name: Mellanox Technologies Ltd. MSN3700/VMOD0005, BIOS 5.11 01/06/2019<br />
Workqueue: mlxsw_core mlxsw_sp_acl_rule_activity_update_work<br />
Call Trace:<br />
<br />
dump_stack_lvl+0xc6/0x120<br />
print_report+0xce/0x670<br />
kasan_report+0xd7/0x110<br />
mlxsw_sp_acl_tcam_flower_rule_activity_get+0x121/0x140<br />
mlxsw_sp_acl_rule_activity_update_work+0x219/0x400<br />
process_one_work+0x8eb/0x19b0<br />
worker_thread+0x6c9/0xf70<br />
kthread+0x2c9/0x3b0<br />
ret_from_fork+0x4d/0x80<br />
ret_from_fork_asm+0x1a/0x30<br />
<br />
<br />
Allocated by task 1039:<br />
kasan_save_stack+0x33/0x60<br />
kasan_save_track+0x14/0x30<br />
__kasan_kmalloc+0x8f/0xa0<br />
__kmalloc+0x19c/0x360<br />
mlxsw_sp_acl_tcam_entry_create+0x7b/0x1f0<br />
mlxsw_sp_acl_tcam_vchunk_migrate_all+0x30d/0xb50<br />
mlxsw_sp_acl_tcam_vregion_rehash_work+0x157/0x1300<br />
process_one_work+0x8eb/0x19b0<br />
worker_thread+0x6c9/0xf70<br />
kthread+0x2c9/0x3b0<br />
ret_from_fork+0x4d/0x80<br />
ret_from_fork_asm+0x1a/0x30<br />
<br />
Freed by task 1039:<br />
kasan_save_stack+0x33/0x60<br />
kasan_save_track+0x14/0x30<br />
kasan_save_free_info+0x3b/0x60<br />
poison_slab_object+0x102/0x170<br />
__kasan_slab_free+0x14/0x30<br />
kfree+0xc1/0x290<br />
mlxsw_sp_acl_tcam_vchunk_migrate_all+0x3d7/0xb50<br />
mlxsw_sp_acl_tcam_vregion_rehash_work+0x157/0x1300<br />
process_one_work+0x8eb/0x19b0<br />
worker_thread+0x6c9/0xf70<br />
kthread+0x2c9/0x3b0<br />
ret_from_fork+0x4d/0x80<br />
ret_from_fork_asm+0x1a/0x30
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.1 (including) | 5.4.275 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.216 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.158 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.90 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.30 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.8.9 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc5:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/1b73f6e4ea770410a937a8db98f77e52594d23a0
- https://git.kernel.org/stable/c/79b5b4b18bc85b19d3a518483f9abbbe6d7b3ba4
- https://git.kernel.org/stable/c/b183b915beef818a25e3154d719ca015a1ae0770
- https://git.kernel.org/stable/c/b996e8699da810e4c915841d6aaef761007f933a
- https://git.kernel.org/stable/c/c17976b42d546ee118ca300db559630ee96fb758
- https://git.kernel.org/stable/c/e24d2487424779c02760ff50cd9021b8676e19ef
- https://git.kernel.org/stable/c/feabdac2057e863d0e140a2adf3d232eb4882db4
- https://git.kernel.org/stable/c/1b73f6e4ea770410a937a8db98f77e52594d23a0
- https://git.kernel.org/stable/c/79b5b4b18bc85b19d3a518483f9abbbe6d7b3ba4
- https://git.kernel.org/stable/c/b183b915beef818a25e3154d719ca015a1ae0770
- https://git.kernel.org/stable/c/b996e8699da810e4c915841d6aaef761007f933a
- https://git.kernel.org/stable/c/c17976b42d546ee118ca300db559630ee96fb758
- https://git.kernel.org/stable/c/e24d2487424779c02760ff50cd9021b8676e19ef
- https://git.kernel.org/stable/c/feabdac2057e863d0e140a2adf3d232eb4882db4
- https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html



