CVE-2023-54316

refscale: Fix uninitalized use of wait_queue_head_t

published December 30, 2025

CVSS
—
EPSS
0%
Percentile
8.3
In the wild
Unconfirmed
What it is

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] <TASK>

[ 8569.952944] ref_scale_reader+0x380/0x4a0 [refscale]

[ 8569.952959] kthread+0x10e/0x130

[ 8569.952966] ret_from_fork+0x1f/0x30

[ 8569.952973] </TASK>

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.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00191 · 8.3th percentile
Published
2025-12-30T12:23Z
EPSS history
Timeline
  • 30 DEC 12:23Z
    refscale: Fix uninitalized use of wait_queue_head_t
    cvelistv5