CVE-2024-38595·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: net/mlx5: Fix peer devlink set for SF representor devlink port The cited patch change register devlink flow, and neglect to reflect the changes for peer devlink set logic. Peer devlink set is triggering a call trace if done after devl_register.[1] Hence, align peer devlink set logic with register devlink flow. [1] WARNING: CPU: 4 PID: 3394 at net/devlink/core.c:155 devlink_rel_nested_in_add+0x177/0x180 CPU: 4 PID: 3394 Comm: kworker/u40:1 Not tainted 6.9.0-rc4_for_linust_min_debug_2024_04_16_14_08 #1 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014 Workqueue: mlx5_vhca_event0 mlx5_vhca_state_work_handler [mlx5_core] RIP: 0010:devlink_rel_nested_in_add+0x177/0x180 Call Trace: <TASK> ? __warn+0x78/0x120 ? devlink_rel_nested_in_add+0x177/0x180 ? report_bug+0x16d/0x180 ? handle_bug+0x3c/0x60 ? exc_invalid_op+0x14/0x70 ? asm_exc_invalid_op+0x16/0x20 ? devlink_port_init+0x30/0x30 ? devlink_port_type_clear+0x50/0x50 ? devlink_rel_nested_in_add+0x177/0x180 ? devlink_rel_nested_in_add+0xdd/0x180 mlx5_sf_mdev_event+0x74/0xb0 [mlx5_core] notifier_call_chain+0x35/0xb0 blocking_notifier_call_chain+0x3d/0x60 mlx5_blocking_notifier_call_chain+0x22/0x30 [mlx5_core] mlx5_sf_dev_probe+0x185/0x3e0 [mlx5_core] auxiliary_bus_probe+0x38/0x80 ? driver_sysfs_add+0x51/0x80 really_probe+0xc5/0x3a0 ? driver_probe_device+0x90/0x90 __driver_probe_device+0x80/0x160 driver_probe_device+0x1e/0x90 __device_attach_driver+0x7d/0x100 bus_for_each_drv+0x80/0xd0 __device_attach+0xbc/0x1f0 bus_probe_device+0x86/0xa0 device_add+0x64f/0x860 __auxiliary_device_add+0x3b/0xa0 mlx5_sf_dev_add+0x139/0x330 [mlx5_core] mlx5_sf_dev_state_change_handler+0x1e4/0x250 [mlx5_core] notifier_call_chain+0x35/0xb0 blocking_notifier_call_chain+0x3d/0x60 mlx5_vhca_state_work_handler+0x151/0x200 [mlx5_core] process_one_work+0x13f/0x2e0 worker_thread+0x2bd/0x3c0 ? rescuer_thread+0x410/0x410 kthread+0xc4/0xf0 ? kthread_complete_and_exit+0x20/0x20 ret_from_fork+0x2d/0x50 ? kthread_complete_and_exit+0x20/0x20 ret_from_fork_asm+0x11/0x20 </TASK>
- Severity
- medium
- Software
- Kernel
- Fixed in
- 6.9.3
- Published
- 2024-06-19
Affected versions
From: 6.9.1
Until: 6.9.3
Fixed in: 6.9.3
How to fix this CVE
Update your Linux kernel to version 6.9.3 or later to resolve this devlink port registration issue affecting MLX5 network drivers. The vulnerability occurs when peer devlink configuration is applied after device registration, causing kernel call trace warnings. Apply the kernel update through your distribution's package manager and reboot the system to activate the patched kernel.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Step 1: Check the running kernel version with `uname -r` and compare against 6.9.1-6.9.2 range
- Step 2: Verify MLX5 network driver presence with `lspci | grep -i mellanox` or `lsmod | grep mlx5`
- Step 3: Search kernel logs for devlink warnings with `dmesg | grep -i 'devlink_rel_nested_in_add\|devlink.*SF representor'`
- Step 4: Confirm the fix by checking kernel version post-update with `uname -r` should show 6.9.3 or higher
FAQ
What is CVE-2024-38595?
This is a kernel vulnerability in the MLX5 network driver's devlink port handling for Scalable Function (SF) representor devices. A recent devlink registration refactor was incompletely applied to peer devlink configuration, causing kernel warnings and call traces when SF representor ports are initialized.
Is CVE-2024-38595 being actively exploited?
No, there is no evidence of active exploitation or publicly available exploits for this vulnerability. This is a stability issue affecting system logging rather than a security vulnerability leading to data breach or privilege escalation.
What versions of Kernel are affected by CVE-2024-38595?
Linux kernel versions 6.9.1, 6.9.2, and 6.9.3 (before the fix) are affected. Versions prior to 6.9.1 and 6.9.3 and later are not impacted.
How do I check if my server is vulnerable to CVE-2024-38595?
Run `uname -r` to check your kernel version; if it shows 6.9.1 or 6.9.2 and you have an MLX5 network adapter (verify with `lspci | grep -i mellanox`), your system is vulnerable. Additionally, check `dmesg` for devlink-related call trace warnings.
Does Defensia detect CVE-2024-38595?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If the Linux kernel is installed on a monitored server, CVE-2024-38595 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/05d9d7b66836d87c914f8fdd4b062b78e373458d
- https://git.kernel.org/stable/c/3c453e8cc672de1f9c662948dba43176bc68d7f0
- https://git.kernel.org/stable/c/a0501201751034ebe7a22bd9483ed28fea1cd213
- https://git.kernel.org/stable/c/05d9d7b66836d87c914f8fdd4b062b78e373458d
- https://git.kernel.org/stable/c/3c453e8cc672de1f9c662948dba43176bc68d7f0
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2024-38595. Free for 1 server.
Get started free