CVE-2024-43846: lib: objagg: Fix general protection fault
In the Linux kernel, the following vulnerability has been resolved:
lib: objagg: Fix general protection fault
The library supports aggregation of objects into other objects only if the parent object does not have a parent itself. That is, nesting is not supported.
Aggregation happens in two cases: Without and with hints, where hints are a pre-computed recommendation on how to aggregate the provided objects.
Nesting is not possible in the first case due to a check that prevents it, but in the second case there is no check because the assumption is that nesting cannot happen when creating objects based on hints. The violation of this assumption leads to various warnings and eventually to a general protection fault [1].
Before fixing the root cause, error out when nesting happens and warn.
[1] general protection fault, probably for non-canonical address 0xdead000000000d90: 0000 [#1] PREEMPT SMP PTI CPU: 1 PID: 1083 Comm: kworker/1:9 Tainted: G W 6.9.0-rc6-custom-gd9b4f1cca7fb #7 Hardware name: Mellanox Technologies Ltd. MSN3700/VMOD0005, BIOS 5.11 01/06/2019 Workqueue: mlxswcore mlxswspacltcamvregionrehashwork RIP: 0010:mlxswspaclerpbfinsert+0x25/0x80 [...] Call Trace: <TASK> mlxswspaclatcamentryadd+0x256/0x3c0 mlxswspacltcamentrycreate+0x5e/0xa0 mlxswspacltcamvchunkmigrateone+0x16b/0x270 mlxswspacltcamvregionrehashwork+0xbe/0x510 processonework+0x151/0x370 workerthread+0x2cb/0x3e0 kthread+0xd0/0x100 retfromfork+0x34/0x50 retfromforkasm+0x1a/0x30 </TASK>
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
debian/linuxto a version that resolves this vulnerability.Fixed in 5.10.234-1Fixed in 6.1.129-1Fixed in 6.1.135-1Fixed in 6.12.25-1Fixed in 6.12.27-1 - Upgrade
Upgrade
debian/linux-6.1to a version that resolves this vulnerability.Fixed in 6.1.129-1~deb11u1 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 5.15.176.3-1 - Upgrade
Upgrade
Linux kernel (lib: objagg)to a version that resolves this vulnerability.Fixed in 6.9.0-rc6-custom-gd9b4f1cca7fb #7Patch lib: objagg: Fix general protection fault - Compensating control
Until the kernel fix is applied, mitigate by avoiding code paths that create aggregated objects based on hints in a way that could permit nesting; the issue occurs because, in the hints-based aggregation path, there is no check preventing nesting (parent object having a parent).
Event History
Frequently Asked Questions
What is the severity of CVE-2024-43846?
The severity of CVE-2024-43846 has been classified as moderate due to the potential for general protection faults in the Linux kernel.
How do I fix CVE-2024-43846?
To fix CVE-2024-43846, update your Linux kernel to version 5.10.226-1, 6.1.123-1, 6.1.119-1, 6.12.11-1, or 6.12.12-1.
Which Linux kernel versions are vulnerable to CVE-2024-43846?
Linux kernel versions between 5.1 and 6.6.44, as well as 6.7 to 6.10.3, are vulnerable to CVE-2024-43846.
Is nesting supported in the object aggregation feature affected by CVE-2024-43846?
No, nesting is not supported in the object aggregation feature that is affected by CVE-2024-43846.
What type of flaws does CVE-2024-43846 introduce in the Linux kernel?
CVE-2024-43846 introduces general protection faults in the Linux kernel due to improper handling of object aggregation.