CVE-2026-31486

hwmon: (pmbus/core) Protect regulator operations with mutex

State
Published
Severity
7.1 High
Published
Apr 22, 2026
Updated
Oct 30, 2026
Reserved
Mar 9, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

hwmon: (pmbus/core) Protect regulator operations with mutex

The regulator operations pmbus_regulator_get_voltage(), pmbus_regulator_set_voltage(), and pmbus_regulator_list_voltage() access PMBus registers and shared data but were not protected by the update_lock mutex. This could lead to race conditions.

However, adding mutex protection directly to these functions causes a deadlock because pmbus_regulator_notify() (which calls regulator_notifier_call_chain()) is often called with the mutex already held (e.g., from pmbus_fault_handler()). If a regulator callback then calls one of the now-protected voltage functions, it will attempt to acquire the same mutex.

Rework pmbus_regulator_notify() to utilize a worker function to send notifications outside of the mutex protection. Events are stored as atomics in a per-page bitmask and processed by the worker.

Initialize the worker and its associated data during regulator registration, and ensure it is cancelled on device removal using devm_add_action_or_reset().

While at it, remove the unnecessary include of linux/of.h.

Scores

CVSSScoreVectorSource
3.17.1 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:HLinux

Weaknesses

  • CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

Affected Products

ProductVersions
LinuxLinux
  • ddbb4db4ced1ba784fcd3500179a7291b6c5d7b7 to before f0c9ea9c3a208e79c812e10e2bcef87b46564f01Affected
  • ddbb4db4ced1ba784fcd3500179a7291b6c5d7b7 to before b26849cffaa7c43355b82e9bef3725e786973a1aAffected
  • ddbb4db4ced1ba784fcd3500179a7291b6c5d7b7 to before acf04e2863132f6d9222f71f3a76fb9782cbe061Affected
  • ddbb4db4ced1ba784fcd3500179a7291b6c5d7b7 to before 4e9d723d9f198b86f6882a84c501ba1f39e8d055Affected
  • ddbb4db4ced1ba784fcd3500179a7291b6c5d7b7 to before 2c77ae315f3ce9d2c8e1609be74c9358c1fe4e07Affected
  • ddbb4db4ced1ba784fcd3500179a7291b6c5d7b7 to before 754bd2b4a084b90b5e7b630e1f423061a9b9b761Affected
LinuxLinux
  • 3.19Affected
  • before 3.19Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.143 through 6.6.*Not affected
  • 6.12.92 through 6.12.*Not affected
  • 6.18.21 through 6.18.*Not affected
  • 6.19.11 through 6.19.*Not affected
  • 7.0 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.