CVSS 3.1
Вероятност да бъде експлоатирана в следващите 30 дни (EPSS)
Атакува се
Време до експлоатация
Атакува се локално, без особени условия, с обикновен потребителски вход и без действие от потребителя.
- Експлоатация: няма данни за експлоатация
- Атаката не може да се автоматизира
Описание
Оригинално описание
In the Linux kernel, the following vulnerability has been resolved: thermal: core: Address thermal zone removal races with resume Since thermal_zone_pm_complete() and thermal_zone_device_resume() re-initialize the poll_queue delayed work for the given thermal zone, the cancel_delayed_work_sync() in thermal_zone_device_unregister() may miss some already running work items and the thermal zone may be freed prematurely [1]. There are two failing scenarios that both start with running thermal_pm_notify_complete() right before invoking thermal_zone_device_unregister() for one of the thermal zones. In the first scenario, there is a work item already running for the given thermal zone when thermal_pm_notify_complete() calls thermal_zone_pm_complete() for that thermal zone and it continues to run when thermal_zone_device_unregister() starts. Since the poll_queue delayed work has been re-initialized by thermal_pm_notify_complete(), the running work item will be missed by the cancel_delayed_work_sync() in thermal_zone_device_unregister() and if it continues to run past the freeing of the thermal zone object, a use-after-free will occur. In the second scenario, thermal_zone_device_resume() queued up by thermal_pm_notify_complete() runs right after the thermal_zone_exit() called by thermal_zone_device_unregister() has returned. The poll_queue delayed work is re-initialized by it before cancel_delayed_work_sync() is called by thermal_zone_device_unregister(), so it may continue to run after the freeing of the thermal zone object, which also leads to a use-after-free. Address the first failing scenario by ensuring that no thermal work items will be running when thermal_pm_notify_complete() is called. For this purpose, first move the cancel_delayed_work() call from thermal_zone_pm_complete() to thermal_zone_pm_prepare() to prevent new work from entering the workqueue going forward. Next, switch over to using a dedicated workqueue for thermal events and update the code in
Засегнати продукти
- Linux Linux: 5a5efdaffda5d23717d9117cf36cda9eafcf2fae преди 1a6d2b001eb730d85f00da39ae7db6f3b4edc540; 5a5efdaffda5d23717d9117cf36cda9eafcf2fae преди 2dbe93f344f10b432b95a23304006be805c097a1; 5a5efdaffda5d23717d9117cf36cda9eafcf2fae преди c4593f1654f7dea3bcf9bb1851ded86311d4f370; 5a5efdaffda5d23717d9117cf36cda9eafcf2fae преди 45b859b0728267a6199ee5002d62e6c6f3e8c89d
- Linux Linux: 6.8; преди 6.8; 6.12.83 до 6.12.*; 6.18.22 до 6.18.*; 6.19.12 до 6.19.*; от 7.0 нататък
Вид слабост
История
- 1 май 2026 Публикувано
Други уязвимости в Linux Linux
Първоизточници
- https://www.cve.org/CVERecord?id=CVE-2026-31731
- https://nvd.nist.gov/vuln/detail/CVE-2026-31731
- https://git.kernel.org/stable/c/1a6d2b001eb730d85f00da39ae7db6f3b4edc540
- https://git.kernel.org/stable/c/2dbe93f344f10b432b95a23304006be805c097a1
- https://git.kernel.org/stable/c/c4593f1654f7dea3bcf9bb1851ded86311d4f370
- https://git.kernel.org/stable/c/45b859b0728267a6199ee5002d62e6c6f3e8c89d