{"id":"CVE-2026-97582","title":"In the Linux kernel, the following vulnerability has been resolved:\n\nhwmon: (gpio-fan) Fix use-after-free in alarm work\n\nfan_alarm_irq_handler() queues fan_data->alarm_work, but nothing\ncancels it","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nhwmon: (gpio-fan) Fix use-after-free in alarm work\n\nfan_alarm_irq_handler() queues fan_data->alarm_work, but nothing\ncancels it.  fan_alarm_notify() dereferences fan_da…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= d6fe1360f42e86262153927986dea6502daff703 < 9b12bd724db9db318e3a68be17693583dc29a066","Linux >= d6fe1360f42e86262153927986dea6502daff703 < 30755d3a5782cd704c8921cac8ee66dffe4383ea","Linux >= d6fe1360f42e86262153927986dea6502daff703 < c6ab7f855891877a16d2e2ddf0cd0305fd098a85","Linux >= d6fe1360f42e86262153927986dea6502daff703 < a2471ed17b0e6ff7bfb6b2ea8e6e5b04c309d293","Linux 2.6.37"],"published":"2026-09-25","updated":"2026-09-25","sourceUpdated":"2026-09-25T11:17:09.010","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-97582","references":[{"url":"https://git.kernel.org/stable/c/30755d3a5782cd704c8921cac8ee66dffe4383ea","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/9b12bd724db9db318e3a68be17693583dc29a066","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/a2471ed17b0e6ff7bfb6b2ea8e6e5b04c309d293","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/c6ab7f855891877a16d2e2ddf0cd0305fd098a85","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"}],"tags":["nvd","cve.org"],"ingestedAt":"2026-09-25T11:06:38.908Z","slug":"CVE-2026-97582","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nhwmon: (gpio-fan) Fix use-after-free in alarm work\n\nfan_alarm_irq_handler() queues fan_data->alarm_work, but nothing\ncancels it.  fan_alarm_notify() dereferences fan_data and its hwmon\ndevice.  On unbind, devres frees the interrupt, which only waits for\nthe handler itself, and then releases the hwmon device and fan_data,\nso a pending fan_alarm_notify() can run after those frees.\n\nReplace INIT_WORK() with devm_work_autocancel(), registered before\ndevm_request_irq().  The devres cleanup then frees the interrupt\nfirst, so no new work can be queued, and cancels the work while\nfan_data and the hwmon device are still alive.\n\nThis issue was found by an in-house static analysis tool.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}