Description
In the Linux kernel, the following vulnerability has been resolved: cpufreq: Fix hotplug-suspend race during reboot During system reboot, cpufreq_suspend() is called via the kernel_restart() -> device_shutdown() path. Unlike the normal system suspend path, the reboot path does not call freeze_processes(), so userspace processes and kernel threads remain active. This allows CPU hotplug operations to run concurrently with cpufreq_suspend(). The original code has no synchronization with CPU hotplug, leading to a race condition where governor_data can be freed by the hotplug path while cpufreq_suspend() is still accessing it, resulting in a null pointer dereference: Unable to handle kernel NULL pointer dereference Call Trace: do_kernel_fault+0x28/0x3c cpufreq_suspend+0xdc/0x160 device_shutdown+0x18/0x200 kernel_restart+0x40/0x80 arm64_sys_reboot+0x1b0/0x200 Fix this by adding cpus_read_lock()/cpus_read_unlock() to cpufreq_suspend() to block CPU hotplug operations while suspend is in progress. [ rjw: Changelog edits ]
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
65650b35133ff20f0c9ef0abd5c3c66dbce3ae57 to < 6d5dd354c37abaf4d60400c55c71f23ba2b33639affected65650b35133ff20f0c9ef0abd5c3c66dbce3ae57 to < 9103078c7b3091a2fbb52af176f95982ee7dd7f8affected65650b35133ff20f0c9ef0abd5c3c66dbce3ae57 to < cd4524ff6567fa4458a5bec4b017105e671d393eaffected65650b35133ff20f0c9ef0abd5c3c66dbce3ae57 to < 73255d702c7560185fd5951aadcf7eb057c2f453affected65650b35133ff20f0c9ef0abd5c3c66dbce3ae57 to < a0ef2fc89d28ca62923376c4b8ffaa57136a36beaffected65650b35133ff20f0c9ef0abd5c3c66dbce3ae57 to < 6e175c00c62dca3d91b987015808b5d52e8db2b4affected65650b35133ff20f0c9ef0abd5c3c66dbce3ae57 to < a0106b41f9a724868d390b8b3b4ea5ca0e04ea53affected65650b35133ff20f0c9ef0abd5c3c66dbce3ae57 to < a9029dd55696c651ee46912afa2a166fa456bb3eaffected8bfa06ea6e81bf08d2132d7e70c2b5313b34caf8affected7ccf3b8b7a12dc9da158c2e699c36d04b2496944affected5f466713989250938624afa79dc33bae20920700affected89ab39da1452d272007acc5912d4008047b86706affectedcb4b4601f910c78d2b49f637a12ef98b41cb76a9affected4.4.198 to < 4.5affected4.9.198 to < 4.10affected4.14.151 to < 4.15affected4.19.81 to < 4.20affected5.3.8 to < 5.4affected
Linux Linux
Default version status: affected
5.4affected0 to < 5.4unaffected5.10.261 to ≤ 5.10.*unaffected5.15.212 to ≤ 5.15.*unaffected6.1.178 to ≤ 6.1.*unaffected6.6.145 to ≤ 6.6.*unaffected6.12.96 to ≤ 6.12.*unaffected6.18.39 to ≤ 6.18.*unaffected7.1.4 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/6d5dd354c37abaf4d60400c55c71f23ba2b33639 ↗
- https://git.kernel.org/stable/c/9103078c7b3091a2fbb52af176f95982ee7dd7f8 ↗
- https://git.kernel.org/stable/c/cd4524ff6567fa4458a5bec4b017105e671d393e ↗
- https://git.kernel.org/stable/c/73255d702c7560185fd5951aadcf7eb057c2f453 ↗
- https://git.kernel.org/stable/c/a0ef2fc89d28ca62923376c4b8ffaa57136a36be ↗
- https://git.kernel.org/stable/c/6e175c00c62dca3d91b987015808b5d52e8db2b4 ↗
- https://git.kernel.org/stable/c/a0106b41f9a724868d390b8b3b4ea5ca0e04ea53 ↗
- https://git.kernel.org/stable/c/a9029dd55696c651ee46912afa2a166fa456bb3e ↗