CVE-2022-48858·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: net/mlx5: Fix a race on command flush flow Fix a refcount use after free warning due to a race on command entry. Such race occurs when one of the commands releases its last refcount and frees its index and entry while another process running command flush flow takes refcount to this command entry. The process which handles commands flush may see this command as needed to be flushed if the other process released its refcount but didn't release the index yet. Fix it by adding the needed spin lock. It fixes the following warning trace: refcount_t: addition on 0; use-after-free. WARNING: CPU: 11 PID: 540311 at lib/refcount.c:25 refcount_warn_saturate+0x80/0xe0 ... RIP: 0010:refcount_warn_saturate+0x80/0xe0 ... Call Trace: <TASK> mlx5_cmd_trigger_completions+0x293/0x340 [mlx5_core] mlx5_cmd_flush+0x3a/0xf0 [mlx5_core] enter_error_state+0x44/0x80 [mlx5_core] mlx5_fw_fatal_reporter_err_work+0x37/0xe0 [mlx5_core] process_one_work+0x1be/0x390 worker_thread+0x4d/0x3d0 ? rescuer_thread+0x350/0x350 kthread+0x141/0x160 ? set_kthread_struct+0x40/0x40 ret_from_fork+0x1f/0x30 </TASK>
- Severity
- high
- Software
- Kernel
- Fixed in
- 5.16.15
- Published
- 2024-07-16
Affected versions
From: 5.16
Until: 5.16.15
Fixed in: 5.16.15
How to fix this CVE
Update your Linux kernel to version 5.16.15 or later to address a critical race condition in the mlx5 network driver's command processing. This vulnerability allows a use-after-free condition when command entries are freed while the flush mechanism is still referencing them. Apply the kernel update and reboot your system to fully remediate the issue.
sudo dnf update kernel kernel-devel && sudo rebootDefensia detects this vulnerability
How to check if you are affected
- Check installed kernel version: uname -r (vulnerable if between 5.16 and 5.16.14)
- Verify mlx5 driver is loaded: lsmod | grep mlx5 (confirms the affected component is present)
- Search kernel logs for refcount warnings: sudo dmesg | grep -i 'refcount_t\|use-after-free\|mlx5_cmd' (indicates exploitation or race condition trigger)
- Confirm patched version: uname -r should show 5.16.15 or higher after update and reboot
FAQ
What is CVE-2022-48858?
CVE-2022-48858 is a race condition in the Linux kernel's mlx5 network driver where command entry refcount management is not properly synchronized. This allows one process to free a command entry while another process in the flush handler attempts to increment its reference counter, triggering a use-after-free condition.
Is CVE-2022-48858 being actively exploited?
No, this vulnerability is not listed in CISA's Known Exploited Vulnerabilities catalog and no public exploits are available. However, it can be triggered through race condition timing under high command load.
What versions of Kernel are affected by CVE-2022-48858?
Linux kernel versions 5.16 through 5.16.14 are affected. The vulnerability was resolved in kernel 5.16.15.
How do I check if my server is vulnerable to CVE-2022-48858?
Run 'uname -r' and compare the output to 5.16.15. If your kernel version is between 5.16 and 5.16.14, you are vulnerable. Additionally, confirm mlx5 presence with 'lsmod | grep mlx5'.
Does Defensia detect CVE-2022-48858?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If Kernel is installed on a monitored server, CVE-2022-48858 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/0401bfb27a91d7bdd74b1635c1aae57cbb128da6
- https://git.kernel.org/stable/c/063bd355595428750803d8736a9bb7c8db67d42d
- https://git.kernel.org/stable/c/1a4017926eeea56c7540cc41b42106746ee8a0ee
- https://git.kernel.org/stable/c/7c519f769f555ff7d9d4ccba3497bbb589df360a
- https://git.kernel.org/stable/c/f3331bc17449f15832c31823f27573f4c0e13e5f
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2022-48858. Free for 1 server.
Get started free