{"id":"CVE-2026-31486","title":"hwmon: (pmbus/core) Protect regulator operations with mutex","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nhwmon: (pmbus/core) Protect regulator operations with mutex\n\nThe regulator operations pmbus_regulator_get_voltage(),\npmbus_regulator_set_voltage(), and pmbus_regulator_…","severity":"high","cvss":7.1,"cvssVector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H","cvssSource":"cna","vendor":"Linux","product":"Linux","affected":["Linux >= ddbb4db4ced1ba784fcd3500179a7291b6c5d7b7 < b26849cffaa7c43355b82e9bef3725e786973a1a","Linux >= ddbb4db4ced1ba784fcd3500179a7291b6c5d7b7 < acf04e2863132f6d9222f71f3a76fb9782cbe061","Linux >= ddbb4db4ced1ba784fcd3500179a7291b6c5d7b7 < 4e9d723d9f198b86f6882a84c501ba1f39e8d055","Linux >= ddbb4db4ced1ba784fcd3500179a7291b6c5d7b7 < 2c77ae315f3ce9d2c8e1609be74c9358c1fe4e07","Linux >= ddbb4db4ced1ba784fcd3500179a7291b6c5d7b7 < 754bd2b4a084b90b5e7b630e1f423061a9b9b761","Linux 3.19"],"ssvc":{"exploitation":"none","automatable":"no","technicalImpact":"partial","timestamp":"2026-10-16T15:10:08.417028Z"},"published":"2026-04-22","updated":"2026-10-16","sourceUpdated":"2026-10-16T15:20:12.976Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-31486","references":[{"url":"https://git.kernel.org/stable/c/b26849cffaa7c43355b82e9bef3725e786973a1a"},{"url":"https://git.kernel.org/stable/c/acf04e2863132f6d9222f71f3a76fb9782cbe061"},{"url":"https://git.kernel.org/stable/c/4e9d723d9f198b86f6882a84c501ba1f39e8d055"},{"url":"https://git.kernel.org/stable/c/2c77ae315f3ce9d2c8e1609be74c9358c1fe4e07"},{"url":"https://git.kernel.org/stable/c/754bd2b4a084b90b5e7b630e1f423061a9b9b761"}],"tags":["cve.org"],"epss":0.00099,"epssPercentile":0.0077,"ingestedAt":"2026-10-16T17:24:46.656Z","slug":"CVE-2026-31486","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nhwmon: (pmbus/core) Protect regulator operations with mutex\n\nThe regulator operations pmbus_regulator_get_voltage(),\npmbus_regulator_set_voltage(), and pmbus_regulator_list_voltage()\naccess PMBus registers and shared data but were not protected by\nthe update_lock mutex. This could lead to race conditions.\n\nHowever, adding mutex protection directly to these functions causes\na deadlock because pmbus_regulator_notify() (which calls\nregulator_notifier_call_chain()) is often called with the mutex\nalready held (e.g., from pmbus_fault_handler()). If a regulator\ncallback then calls one of the now-protected voltage functions,\nit will attempt to acquire the same mutex.\n\nRework pmbus_regulator_notify() to utilize a worker function to\nsend notifications outside of the mutex protection. Events are\nstored as atomics in a per-page bitmask and processed by the worker.\n\nInitialize the worker and its associated data during regulator\nregistration, and ensure it is cancelled on device removal using\ndevm_add_action_or_reset().\n\nWhile at it, remove the unnecessary include of linux/of.h.\n\n## Affected\n\n- `Linux >= ddbb4db4ced1ba784fcd3500179a7291b6c5d7b7 < b26849cffaa7c43355b82e9bef3725e786973a1a`\n- `Linux >= ddbb4db4ced1ba784fcd3500179a7291b6c5d7b7 < acf04e2863132f6d9222f71f3a76fb9782cbe061`\n- `Linux >= ddbb4db4ced1ba784fcd3500179a7291b6c5d7b7 < 4e9d723d9f198b86f6882a84c501ba1f39e8d055`\n- `Linux >= ddbb4db4ced1ba784fcd3500179a7291b6c5d7b7 < 2c77ae315f3ce9d2c8e1609be74c9358c1fe4e07`\n- `Linux >= ddbb4db4ced1ba784fcd3500179a7291b6c5d7b7 < 754bd2b4a084b90b5e7b630e1f423061a9b9b761`\n- `Linux 3.19`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"twilight","depthScore":39,"depthScoreParts":{"impact":39.1,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}