CVE-2023-54316
Description
In the Linux kernel, the following vulnerability has been resolved:
refscale: Fix uninitalized use of wait_queue_head_t
Running the refscale test occasionally crashes the kernel with the following error:
[ 8569.952896] BUG: unable to handle page fault for address: ffffffffffffffe8 [ 8569.952900] #PF: supervisor read access in kernel mode [ 8569.952902] #PF: error_code(0x0000) - not-present page [ 8569.952904] PGD c4b048067 P4D c4b049067 PUD c4b04b067 PMD 0 [ 8569.952910] Oops: 0000 [#1] PREEMPT_RT SMP NOPTI [ 8569.952916] Hardware name: Dell Inc. PowerEdge R750/0WMWCR, BIOS 1.2.4 05/28/2021 [ 8569.952917] RIP: 0010:prepare_to_wait_event+0x101/0x190 : [ 8569.952940] Call Trace: [ 8569.952941] [ 8569.952944] ref_scale_reader+0x380/0x4a0 [refscale] [ 8569.952959] kthread+0x10e/0x130 [ 8569.952966] ret_from_fork+0x1f/0x30 [ 8569.952973]
The likely cause is that init_waitqueue_head() is called after the call to the torture_create_kthread() function that creates the ref_scale_reader kthread. Although this init_waitqueue_head() call will very likely complete before this kthread is created and starts running, it is possible that the calling kthread will be delayed between the calls to torture_create_kthread() and init_waitqueue_head(). In this case, the new kthread will use the waitqueue head before it is properly initialized, which is not good for the kernel's health and well-being.
The above crash happened here:
static inline void __add_wait_queue(...) { : if (!(wq->flags & WQ_FLAG_PRIORITY)) <=== Crash here
The offset of flags from list_head entry in wait_queue_entry is -0x18. If reader_tasks[i].wq.head.next is NULL as allocated reader_task structure is zero initialized, the instruction will try to access address 0xffffffffffffffe8, which is exactly the fault address listed above.
This commit therefore invokes init_waitqueue_head() before creating the kthread.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
A race condition in the Linux kernel's refscale test causes an uninitialized waitqueue head, leading to a kernel crash.
Root
Cause
A race condition exists in the refscale test module where init_waitqueue_head() is called after torture_create_kthread() creates a reader kthread. If the calling kthread is delayed between these two calls, the new kthread may use the waitqueue head before it is properly initialized. The crash occurs in prepare_to_wait_event() when accessing wq->flags, which at offset -0x18 from a NULL list_head leads to a page fault at address 0xffffffffffffffe8 [1][2][3].
Exploitation
Prerequisites
No authentication or specific network position is required; the vulnerability only manifests when running the refscale test on a kernel built with CONFIG_PREEMPT_RT and SMP enabled. The race window is narrow, but the impact is immediate kernel panic with the observed Oops trace showing a crash in ref_scale_reader [1].
Impact
Successful exploitation (i.e., triggering the race) results in a denial of service via a kernel panic, as demonstrated by the reported BUG trace showing a page fault in the scheduler's waitqueue code. The crash renders the system unusable until reboot [1].
Mitigation
Status
The fix is to move init_waitqueue_head() before the kthread creation call, ensuring the waitqueue is fully initialized before any reader thread can use it. This commit has been applied to the stable Linux kernel branches. Users should update to kernel versions containing this fix or backport the commit [2][3].
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
1Patches
6066fbd8bc981ec9d118ad99de0322a255a22e5de968a903270a2856fd1d0f5063e8948daVulnerability mechanics
Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
6- git.kernel.org/stable/c/066fbd8bc981cf49923bf828b7b4092894df577fnvd
- git.kernel.org/stable/c/70a2856fd1d0a040c876ba9e3f89b949ae92e4ddnvd
- git.kernel.org/stable/c/e0322a255a2242dbe4686b6176b3c83dea490529nvd
- git.kernel.org/stable/c/e5de968a9032366198720eac4f368ed7e690b3efnvd
- git.kernel.org/stable/c/ec9d118ad99dc6f1bc674c1e649c25533d89b9banvd
- git.kernel.org/stable/c/f5063e8948dad7f31adb007284a5d5038ae31bb8nvd
News mentions
0No linked articles in our index yet.