CVE-2023-53291

rcu/rcuscale: Stop kfree_scale_thread thread(s) after unloading rcuscale

Medium · published September 16, 2025

CVSS v3.1
5.5
EPSS
0%
Percentile
3.7
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

rcu/rcuscale: Stop kfree_scale_thread thread(s) after unloading rcuscale

Running the 'kfree_rcu_test' test case [1] results in a splat [2].

The root cause is the kfree_scale_thread thread(s) continue running

after unloading the rcuscale module. This commit fixes that isue by

invoking kfree_scale_cleanup() from rcu_scale_cleanup() when removing

the rcuscale module.

[1] modprobe rcuscale kfree_rcu_test=1

// After some time

rmmod rcuscale

rmmod torture

[2] BUG: unable to handle page fault for address: ffffffffc0601a87

#PF: supervisor instruction fetch in kernel mode

#PF: error_code(0x0010) - not-present page

PGD 11de4f067 P4D 11de4f067 PUD 11de51067 PMD 112f4d067 PTE 0

Oops: 0010 [#1] PREEMPT SMP NOPTI

CPU: 1 PID: 1798 Comm: kfree_scale_thr Not tainted 6.3.0-rc1-rcu+ #1

Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 0.0.0 02/06/2015

RIP: 0010:0xffffffffc0601a87

Code: Unable to access opcode bytes at 0xffffffffc0601a5d.

RSP: 0018:ffffb25bc2e57e18 EFLAGS: 00010297

RAX: 0000000000000000 RBX: ffffffffc061f0b6 RCX: 0000000000000000

RDX: 0000000000000000 RSI: ffffffff962fd0de RDI: ffffffff962fd0de

RBP: ffffb25bc2e57ea8 R08: 0000000000000000 R09: 0000000000000000

R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000

R13: 0000000000000000 R14: 000000000000000a R15: 00000000001c1dbe

FS: 0000000000000000(0000) GS:ffff921fa2200000(0000) knlGS:0000000000000000

CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033

CR2: ffffffffc0601a5d CR3: 000000011de4c006 CR4: 0000000000370ee0

DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000

DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400

Call Trace:

<TASK>

? kvfree_call_rcu+0xf0/0x3a0

? kthread+0xf3/0x120

? kthread_complete_and_exit+0x20/0x20

? ret_from_fork+0x1f/0x30

</TASK>

Modules linked in: rfkill sunrpc ... [last unloaded: torture]

CR2: ffffffffc0601a87

---[ end trace 0000000000000000 ]---

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00149 · 3.7th percentile
Published
2025-09-16T08:11Z
EPSS history
Timeline
  • 16 SEP 08:11Z
    rcu/rcuscale: Stop kfree_scale_thread thread(s) after unloading rcuscale
    cvelistv5