CVE-2023-52836·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: locking/ww_mutex/test: Fix potential workqueue corruption In some cases running with the test-ww_mutex code, I was seeing odd behavior where sometimes it seemed flush_workqueue was returning before all the work threads were finished. Often this would cause strange crashes as the mutexes would be freed while they were being used. Looking at the code, there is a lifetime problem as the controlling thread that spawns the work allocates the "struct stress" structures that are passed to the workqueue threads. Then when the workqueue threads are finished, they free the stress struct that was passed to them. Unfortunately the workqueue work_struct node is in the stress struct. Which means the work_struct is freed before the work thread returns and while flush_workqueue is waiting. It seems like a better idea to have the controlling thread both allocate and free the stress structures, so that we can be sure we don't corrupt the workqueue by freeing the structure prematurely. So this patch reworks the test to do so, and with this change I no longer see the early flush_workqueue returns.
- Severity
- high
- Software
- Kernel
- Fixed in
- 6.6.3
- Published
- 2024-05-21
Affected versions
From: 6.6
Until: 6.6.3
Fixed in: 6.6.3
How to fix this CVE
Update your Linux kernel to version 6.6.3 or later to resolve a memory lifetime issue in the ww_mutex test code that could cause workqueue corruption and system crashes. The vulnerability stems from premature deallocation of synchronization structures while the kernel's work queue is still processing them. Ensure your system is running a patched kernel version and reboot to apply the security update.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Step 1: Check your current kernel version with `uname -r` and compare against 6.6.3; if you see 6.6.0 through 6.6.2, you are vulnerable
- Step 2: Verify if the ww_mutex test module is loaded by running `lsmod | grep ww_mutex` or check kernel configuration with `grep CONFIG_WW_MUTEX_SELFTEST /boot/config-$(uname -r)`
- Step 3: Search system logs for workqueue-related crashes using `sudo journalctl -S -1h | grep -E '(workqueue|ww_mutex|work_struct|flush_workqueue|kernel crash)'`
- Step 4: After patching and reboot, verify the fixed version is active with `uname -r` and confirm it shows 6.6.3 or later
FAQ
What is CVE-2023-52836?
CVE-2023-52836 is a memory safety vulnerability in the Linux kernel's ww_mutex test suite where work queue structures are freed prematurely while the work queue is still processing them, leading to use-after-free conditions and potential kernel crashes.
Is CVE-2023-52836 being actively exploited?
No, this vulnerability is not listed on the CISA Known Exploited Vulnerabilities catalog and no public exploits are available. However, it can cause denial of service through system crashes if triggered.
What versions of Kernel are affected by CVE-2023-52836?
Linux kernel versions 6.6.0 through 6.6.2 are affected. The vulnerability was fixed in kernel version 6.6.3.
How do I check if my server is vulnerable to CVE-2023-52836?
Run `uname -r` to display your kernel version. If the output shows any version from 6.6.0 to 6.6.2, your system is vulnerable and requires an immediate kernel update.
Does Defensia detect CVE-2023-52836?
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-2023-52836 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/304a2c4aad0fff887ce493e4197bf9cbaf394479
- https://git.kernel.org/stable/c/9ed2d68b3925145f5f51c46559484881d6082f75
- https://git.kernel.org/stable/c/bccdd808902f8c677317cec47c306e42b93b849e
- https://git.kernel.org/stable/c/c56df79d68677cf062da1b6e3b33e74299a92dfc
- https://git.kernel.org/stable/c/d4d37c9e6a4dbcca958dabd99216550525c7e389
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2023-52836. Free for 1 server.
Get started free