UBUNTU-CVE-2024-27006
In the Linux kernel, the following vulnerability has been resolved: thermal/debugfs: Add missing count increment to thermal_debug_tz_trip_up() The count field in struct trip_stats, representing the number of times the zone temperature was above the trip point, needs to be incremented in thermal_debug_tz_trip_up(), for two reasons. First, if a trip point is crossed on the way up for the first time, thermal_debug_update_temp() called from update_temperature() does not see it because it has not been added to trips_crossed[] array in the thermal zone's struct tz_debugfs object yet. Therefore, when thermal_debug_tz_trip_up() is called after that, the trip point's count value is 0, and the attempt to divide by it during the average temperature computation leads to a divide error which causes the kernel to crash. Setting the count to 1 before the division by incrementing it fixes this problem. Second, if a trip point is crossed on the way up, but it has been crossed on the way up already before, its count value needs to be incremented to make a record of the fact that the zone temperature is above the trip now. Without doing that, if the mitigations applied after crossing the trip cause the zone temperature to drop below its threshold, the count will not be updated for this episode at all and the average temperature in the trip statistics record will be somewhat higher than it should be. Cc :6.8+ <[email protected]> # 6.8+
02 / AFFECTED SOFTWARE
Affected packages
29 explicit affected versions
1 explicit affected versions
8 explicit affected versions
7 explicit affected versions
26 explicit affected versions
37 explicit affected versions
10 explicit affected versions
10 explicit affected versions
13 explicit affected versions
13 explicit affected versions
1 explicit affected versions
37 explicit affected versions
6 explicit affected versions
8 explicit affected versions
4 explicit affected versions
8 explicit affected versions
23 explicit affected versions
7 explicit affected versions
10 explicit affected versions
8 explicit affected versions
3 explicit affected versions
33 explicit affected versions
16 explicit affected versions
4 explicit affected versions
12 explicit affected versions
38 explicit affected versions
51 explicit affected versions
13 explicit affected versions
10 explicit affected versions
10 explicit affected versions
13 explicit affected versions
1 explicit affected versions
10 explicit affected versions
7 explicit affected versions
8 explicit affected versions
8 explicit affected versions
21 explicit affected versions
6 explicit affected versions
13 explicit affected versions
12 explicit affected versions
7 explicit affected versions
12 explicit affected versions
5 explicit affected versions
26 explicit affected versions
2 explicit affected versions
1 explicit affected versions
2 explicit affected versions
8 explicit affected versions
23 explicit affected versions
5 explicit affected versions
3 explicit affected versions
26 explicit affected versions
12 explicit affected versions
44 explicit affected versions
2 explicit affected versions
4 explicit affected versions
4 explicit affected versions
16 explicit affected versions
9 explicit affected versions
12 explicit affected versions
13 explicit affected versions
5 explicit affected versions
7 explicit affected versions
7 explicit affected versions
10 explicit affected versions
14 explicit affected versions
6 explicit affected versions
18 explicit affected versions
3 explicit affected versions
16 explicit affected versions
43 explicit affected versions
9 explicit affected versions
2 explicit affected versions
11 explicit affected versions
35 explicit affected versions
12 explicit affected versions
7 explicit affected versions
6 explicit affected versions
12 explicit affected versions
50 explicit affected versions
12 explicit affected versions
27 explicit affected versions
12 explicit affected versions
7 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
In the Linux kernel, the following vulnerability has been resolved: thermal/debugfs: Add missing count increment to thermal_debug_tz_trip_up() The count field in struct trip_stats, representing the number of times the zone temperature was above the trip point, needs to be incremented in thermal_debug_tz_trip_up(), for two reasons. First, if a trip point is crossed on the way up for the first time, thermal_debug_update_temp() called from update_temperature() does not see it because it has not been added to trips_crossed[] array in the thermal zone's struct tz_debugfs object yet. Therefore, when thermal_debug_tz_trip_up() is called after that, the trip point's count value is 0, and the attempt to divide by it during the average temperature computation leads to a divide error which causes the kernel to crash. Setting the count to 1 before the division by incrementing it fixes this problem. Second, if a trip point is crossed on the way up, but it has been crossed on the way up already before, its count value needs to be incremented to make a record of the fact that the zone temperature is above the trip now. Without doing that, if the mitigations applied after crossing the trip cause the zone temperature to drop below its threshold, the count will not be updated for this episode at all and the average temperature in the trip statistics record will be somewhat higher than it should be. Cc :6.8+ <[email protected]> # 6.8+
05 / REFERENCES
Further evidence
- https://git.kernel.org/linus/b552f63cd43735048bbe9bfbb7a9dcfce166fbdd
- https://git.kernel.org/stable/c/9c8215d32e730b597c809a9d2090bf8ec1b79fcf
- https://git.kernel.org/stable/c/b552f63cd43735048bbe9bfbb7a9dcfce166fbdd
- https://ubuntu.com/security/CVE-2024-27006
- https://ubuntu.com/security/notices/USN-6893-1
- https://ubuntu.com/security/notices/USN-6893-2
- https://ubuntu.com/security/notices/USN-6893-3
- https://ubuntu.com/security/notices/USN-6918-1
- https://www.cve.org/CVERecord?id=CVE-2024-27006