CVE-2024-36961
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
03/06/2024
Last modified:
17/09/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
thermal/debugfs: Fix two locking issues with thermal zone debug<br />
<br />
With the current thermal zone locking arrangement in the debugfs code,<br />
user space can open the "mitigations" file for a thermal zone before<br />
the zone&#39;s debugfs pointer is set which will result in a NULL pointer<br />
dereference in tze_seq_start().<br />
<br />
Moreover, thermal_debug_tz_remove() is not called under the thermal<br />
zone lock, so it can run in parallel with the other functions accessing<br />
the thermal zone&#39;s struct thermal_debugfs object. Then, it may clear<br />
tz->debugfs after one of those functions has checked it and the<br />
struct thermal_debugfs object may be freed prematurely.<br />
<br />
To address the first problem, pass a pointer to the thermal zone&#39;s<br />
struct thermal_debugfs object to debugfs_create_file() in<br />
thermal_debug_tz_add() and make tze_seq_start(), tze_seq_next(),<br />
tze_seq_stop(), and tze_seq_show() retrieve it from s->private<br />
instead of a pointer to the thermal zone object. This will ensure<br />
that tz_debugfs will be valid across the "mitigations" file accesses<br />
until thermal_debugfs_remove_id() called by thermal_debug_tz_remove()<br />
removes that file.<br />
<br />
To address the second problem, use tz->lock in thermal_debug_tz_remove()<br />
around the tz->debugfs value check (in case the same thermal zone is<br />
removed at the same time in two different threads) and its reset to NULL.<br />
<br />
Cc :6.8+ # 6.8+
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.8 (including) | 6.8.10 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.9:rc6:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page



