[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025091626-CVE-2023-53291-9fe7@gregkh>
Date: Tue, 16 Sep 2025 10:11:41 +0200
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...nel.org>
Subject: CVE-2023-53291: rcu/rcuscale: Stop kfree_scale_thread thread(s) after unloading rcuscale
From: Greg Kroah-Hartman <gregkh@...nel.org>
Description
===========
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 Linux kernel CVE team has assigned CVE-2023-53291 to this issue.
Affected and fixed versions
===========================
Issue introduced in 5.6 with commit e6e78b004fa7e0ab455d46d27f218bf6ce178a18 and fixed in 5.10.188 with commit 604d6a5ff718874904b0fe614878a42b42c0d699
Issue introduced in 5.6 with commit e6e78b004fa7e0ab455d46d27f218bf6ce178a18 and fixed in 5.15.121 with commit f766d45ab294871a3d588ee76c666852f151cad9
Issue introduced in 5.6 with commit e6e78b004fa7e0ab455d46d27f218bf6ce178a18 and fixed in 6.1.39 with commit b8a6ba524d41f4da102e65f90498d9a910839621
Issue introduced in 5.6 with commit e6e78b004fa7e0ab455d46d27f218bf6ce178a18 and fixed in 6.3.13 with commit 1dd7547c7610723b2b6afe1a3c4ddb2bde63387c
Issue introduced in 5.6 with commit e6e78b004fa7e0ab455d46d27f218bf6ce178a18 and fixed in 6.4.4 with commit 29b1da4f90fc42c91beb4e400d926194925ad31b
Issue introduced in 5.6 with commit e6e78b004fa7e0ab455d46d27f218bf6ce178a18 and fixed in 6.5 with commit 23fc8df26dead16687ae6eb47b0561a4a832e2f6
Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.
Unaffected versions might change over time as fixes are backported to
older supported kernel versions. The official CVE entry at
https://cve.org/CVERecord/?id=CVE-2023-53291
will be updated if fixes are backported, please check that for the most
up to date information about this issue.
Affected files
==============
The file(s) affected by this issue are:
kernel/rcu/rcuscale.c
Mitigation
==========
The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes. Individual
changes are never tested alone, but rather are part of a larger kernel
release. Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all. If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
https://git.kernel.org/stable/c/604d6a5ff718874904b0fe614878a42b42c0d699
https://git.kernel.org/stable/c/f766d45ab294871a3d588ee76c666852f151cad9
https://git.kernel.org/stable/c/b8a6ba524d41f4da102e65f90498d9a910839621
https://git.kernel.org/stable/c/1dd7547c7610723b2b6afe1a3c4ddb2bde63387c
https://git.kernel.org/stable/c/29b1da4f90fc42c91beb4e400d926194925ad31b
https://git.kernel.org/stable/c/23fc8df26dead16687ae6eb47b0561a4a832e2f6
Powered by blists - more mailing lists