CVE-2023-53848
Description
In the Linux kernel, the following vulnerability has been resolved:
md/raid5-cache: fix a deadlock in r5l_exit_log()
Commit b13015af94cf ("md/raid5-cache: Clear conf->log after finishing work") introduce a new problem:
// caller hold reconfig_mutex r5l_exit_log flush_work(&log->disable_writeback_work) r5c_disable_writeback_async wait_event /* * conf->log is not NULL, and mddev_trylock() * will fail, wait_event() can never pass. */ conf->log = NULL
Fix this problem by setting 'config->log' to NULL before wake_up() as it used to be, so that wait_event() from r5c_disable_writeback_async() can exist. In the meantime, move forward md_unregister_thread() so that null-ptr-deref this commit fixed can still be fixed.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
In the Linux kernel's raid5-cache, a deadlock in r5l_exit_log() occurs when setting conf->log to NULL before the workqueue thread can exit, introduced by commit b13015af94cf.
Vulnerability
Description
In the Linux kernel, a deadlock vulnerability was introduced in the raid5-cache module by commit b13015af94cf ("md/raid5-cache: Clear conf->log after finishing work"). The issue occurs in the r5l_exit_log() function [1][2]. The root cause is that the function sets conf->log to NULL after flushing the workqueue, but the workqueue handler r5c_disable_writeback_async waits for a condition that never becomes true because conf->log is still non-NULL at that point [1][2].
Exploitation
Conditions
An attacker cannot directly trigger this deadlock; it requires a kernel rebuild or a specific sequence of operations on a system using the MD RAID5 or RAID6 with a write-back cache. The deadlock occurs when the kernel tries to exit the raid5-cache log while the reconfig_mutex is held, and the disable_writeback_work is still executing [1]. The wait_event in r5c_disable_writeback_async cannot proceed because conf->log is not yet NULL [1].
Impact
If the deadlock occurs, it causes a kernel hang (system freeze) because the mutex is never released. This results in a denial of service (DoS) for any processes waiting on the reconfig_mutex, effectively crashing the system or making it unresponsive [1].
Mitigation
State
The Linux kernel stable tree has released patches that fix the deadlock by reordering the operations: setting conf->log to NULL before calling wake_up() (so the wait condition is met), and moving md_unregister_thread() earlier to prevent a null-pointer dereference [1][2]. The fix commits are available as part of the stable kernel updates [1][2]. Users should apply the latest stable kernel updates to resolve this vulnerability.
AI Insight generated on May 19, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected products
2Patches
471cf23271f01c40698473821a705b11b358dac9e103f282aVulnerability mechanics
Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
4News mentions
0No linked articles in our index yet.