CVE-2023-53563

Source
https://nvd.nist.gov/vuln/detail/CVE-2023-53563
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-53563.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2023-53563
Downstream
Published
2025-10-04T15:17:06Z
Modified
2025-10-16T18:58:00.455093Z
Summary
cpufreq: amd-pstate-ut: Fix kernel panic when loading the driver
Details

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

cpufreq: amd-pstate-ut: Fix kernel panic when loading the driver

After loading the amd-pstate-ut driver, amdpstateutcheckperf() and amdpstateutcheckfreq() use cpufreqcpuget() to get the policy of the CPU and mark it as busy.

In these functions, cpufreqcpuput() should be used to release the policy, but it is not, so any other entity trying to access the policy is blocked indefinitely.

One such scenario is when amd_pstate mode is changed, leading to the following splat:

[ 1332.103727] INFO: task bash:2929 blocked for more than 120 seconds. [ 1332.110001] Not tainted 6.5.0-rc2-amd-pstate-ut #5 [ 1332.115315] "echo 0 > /proc/sys/kernel/hungtasktimeoutsecs" disables this message. [ 1332.123140] task:bash state:D stack:0 pid:2929 ppid:2873 flags:0x00004006 [ 1332.123143] Call Trace: [ 1332.123145] <TASK> [ 1332.123148] _schedule+0x3c1/0x16a0 [ 1332.123154] ? rawreadlockirqsave+0x2d/0x70 [ 1332.123157] schedule+0x6f/0x110 [ 1332.123160] scheduletimeout+0x14f/0x160 [ 1332.123162] ? preemptcountadd+0x86/0xd0 [ 1332.123165] _waitforcommon+0x92/0x190 [ 1332.123168] ? _pfxscheduletimeout+0x10/0x10 [ 1332.123170] waitforcompletion+0x28/0x30 [ 1332.123173] cpufreqpolicyputkobj+0x4d/0x90 [ 1332.123177] cpufreqpolicyfree+0x157/0x1d0 [ 1332.123178] ? preemptcountadd+0x58/0xd0 [ 1332.123180] cpufreqremovedev+0xb6/0x100 [ 1332.123182] subsysinterfaceunregister+0x114/0x120 [ 1332.123185] ? preemptcountadd+0x58/0xd0 [ 1332.123187] ? _pfxamdpstatechangedrivermode+0x10/0x10 [ 1332.123190] cpufrequnregisterdriver+0x3b/0xd0 [ 1332.123192] amdpstatechangedrivermode+0x1e/0x50 [ 1332.123194] storestatus+0xe9/0x180 [ 1332.123197] devattrstore+0x1b/0x30 [ 1332.123199] sysfskfwrite+0x42/0x50 [ 1332.123202] kernfsfopwriteiter+0x143/0x1d0 [ 1332.123204] vfswrite+0x2df/0x400 [ 1332.123208] ksyswrite+0x6b/0xf0 [ 1332.123210] _x64syswrite+0x1d/0x30 [ 1332.123213] dosyscall64+0x60/0x90 [ 1332.123216] ? fpregsassertstateconsistent+0x2e/0x50 [ 1332.123219] ? exittousermodeprepare+0x49/0x1a0 [ 1332.123223] ? irqentryexittousermode+0xd/0x20 [ 1332.123225] ? irqentryexit+0x3f/0x50 [ 1332.123226] ? excpagefault+0x8e/0x190 [ 1332.123228] entrySYSCALL64afterhwframe+0x6e/0xd8 [ 1332.123232] RIP: 0033:0x7fa74c514a37 [ 1332.123234] RSP: 002b:00007ffe31dd0788 EFLAGS: 00000246 ORIGRAX: 0000000000000001 [ 1332.123238] RAX: ffffffffffffffda RBX: 0000000000000008 RCX: 00007fa74c514a37 [ 1332.123239] RDX: 0000000000000008 RSI: 000055e27c447aa0 RDI: 0000000000000001 [ 1332.123241] RBP: 000055e27c447aa0 R08: 00007fa74c5d1460 R09: 000000007fffffff [ 1332.123242] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000008 [ 1332.123244] R13: 00007fa74c61a780 R14: 00007fa74c616600 R15: 00007fa74c615a00 [ 1332.123247] </TASK>

Fix this by calling cpufreqcpuput() wherever necessary.

[ rjw: Subject and changelog edits ]

References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
14eb1c96e3a3fd9cd377ac9af3c7a410f8bf1015
Fixed
fcf78a17bbb94bebaa912f0460a1848f7d374c94
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
14eb1c96e3a3fd9cd377ac9af3c7a410f8bf1015
Fixed
84857640c67405eed258c461b3ef909002f1e201
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
14eb1c96e3a3fd9cd377ac9af3c7a410f8bf1015
Fixed
0f74f12ee042fd72e45f0e8700e063c84ef3883b
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
14eb1c96e3a3fd9cd377ac9af3c7a410f8bf1015
Fixed
60dd283804479c4a52f995b713f448e2cd65b8c8

Affected versions

v6.*

v6.0
v6.0-rc2
v6.0-rc3
v6.0-rc4
v6.0-rc5
v6.0-rc6
v6.0-rc7
v6.1
v6.1-rc1
v6.1-rc2
v6.1-rc3
v6.1-rc4
v6.1-rc5
v6.1-rc6
v6.1-rc7
v6.1-rc8
v6.1.1
v6.1.10
v6.1.11
v6.1.12
v6.1.13
v6.1.14
v6.1.15
v6.1.16
v6.1.17
v6.1.18
v6.1.19
v6.1.2
v6.1.20
v6.1.21
v6.1.22
v6.1.23
v6.1.24
v6.1.25
v6.1.26
v6.1.27
v6.1.28
v6.1.29
v6.1.3
v6.1.30
v6.1.31
v6.1.32
v6.1.33
v6.1.34
v6.1.35
v6.1.36
v6.1.37
v6.1.38
v6.1.39
v6.1.4
v6.1.40
v6.1.41
v6.1.42
v6.1.43
v6.1.44
v6.1.45
v6.1.46
v6.1.47
v6.1.48
v6.1.49
v6.1.5
v6.1.50
v6.1.51
v6.1.52
v6.1.6
v6.1.7
v6.1.8
v6.1.9
v6.2
v6.2-rc1
v6.2-rc2
v6.2-rc3
v6.2-rc4
v6.2-rc5
v6.2-rc6
v6.2-rc7
v6.2-rc8
v6.3
v6.3-rc1
v6.3-rc2
v6.3-rc3
v6.3-rc4
v6.3-rc5
v6.3-rc6
v6.3-rc7
v6.4
v6.4-rc1
v6.4-rc2
v6.4-rc3
v6.4-rc4
v6.4-rc5
v6.4-rc6
v6.4-rc7
v6.4.1
v6.4.10
v6.4.11
v6.4.12
v6.4.13
v6.4.14
v6.4.15
v6.4.2
v6.4.3
v6.4.4
v6.4.5
v6.4.6
v6.4.7
v6.4.8
v6.4.9
v6.5
v6.5-rc1
v6.5-rc2
v6.5-rc3
v6.5-rc4
v6.5-rc5
v6.5-rc6
v6.5-rc7
v6.5.1
v6.5.2

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.1.0
Fixed
6.1.53
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.4.16
Type
ECOSYSTEM
Events
Introduced
6.5.0
Fixed
6.5.3