Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: hwmon: (pmbus) Fix passing events to regulator core Sashiko reports: Commit 754bd2b4a084 ("hwmon: (pmbus/core) Protect regulator operations with mutex") introduced a worker to batch regulator events over time using atomic_or(). The delayed worker then passes the combined bitmask unmodified to regulator_notifier_call_chain(). The core regulator subsystem's regulator_handle_critical() function evaluates the event parameter using a strict switch statement. If multiple distinct faults occur before the worker runs (e.g., REGULATOR_EVENT_UNDER_VOLTAGE | REGULATOR_EVENT_OVER_CURRENT), the combined bitmask fails to match any case. This leaves the reason as NULL and completely bypasses the critical hw_protection_trigger(). Fix the problem by passing events bit by bit to the regulator event handler.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected b26849cffaa7c43355b82e9bef3725e786973a1a before 2106bf4056858fcce3624e0c51f6fee4d41d3f2f; affected acf04e2863132f6d9222f71f3a76fb9782cbe061 before 48fe43666950efefb7ac5fbdc012c1b3604096bf; affected 4e9d723d9f198b86f6882a84c501ba1f39e8d055 before 489291b6b56978cc50d34e8e13f9636ea296ba8a; affected 754bd2b4a084b90b5e7b630e1f423061a9b9b761 before b0ff6b6ae9c5183ef701ece7016698bde5a5bfba; affected 754bd2b4a084b90b5e7b630e1f423061a9b9b761 before 9ef7dacd44216bf5ea05c8aef49eba4d145f4047; affected 2c77ae315f3ce9d2c8e1609be74c9358c1fe4e07; affected 6.6.143 before 6.6.145; affected 6.12.92 before 6.12.97; affected 6.18.21 before 6.18.40; affected 6.19.11 before 6.20 |
| Linux / Linux | affected 7.0; unaffected 0 before 7.0; unaffected 6.6.145 through 6.6.*; unaffected 6.12.97 through 6.12.*; unaffected 6.18.40 through 6.18.*; unaffected 7.1.5 through 7.1.*; unaffected 7.2 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/2106bf4056858fcce3624e0c51f6fee4d41d3f2f
- https://git.kernel.org/stable/c/48fe43666950efefb7ac5fbdc012c1b3604096bf
- https://git.kernel.org/stable/c/489291b6b56978cc50d34e8e13f9636ea296ba8a
- https://git.kernel.org/stable/c/b0ff6b6ae9c5183ef701ece7016698bde5a5bfba
- https://git.kernel.org/stable/c/9ef7dacd44216bf5ea05c8aef49eba4d145f4047