Description
In the Linux kernel, the following vulnerability has been resolved: hwmon: (w83791d) Convert macros to functions to avoid TOCTOU The macro FAN_FROM_REG evaluates its arguments multiple times. When used in lockless contexts involving shared driver data, this leads to Time-of-Check to Time-of-Use (TOCTOU) race conditions, potentially causing divide-by-zero errors. Convert the macro to a static function. This guarantees that arguments are evaluated only once (pass-by-value), preventing the race conditions. Additionally, in store_fan_div, move the calculation of the minimum limit inside the update lock. This ensures that the read-modify-write sequence operates on consistent data. Adhere to the principle of minimal changes by only converting macros that evaluate arguments multiple times and are used in lockless contexts.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
9873964d6eb24bd0205394f9b791de9eddbcb855 to < 3dceb68f6ad33156032ef4da21a93d84059cca6daffected9873964d6eb24bd0205394f9b791de9eddbcb855 to < bf5b03227f2e6d4360004886d268f9df8993ef8faffected9873964d6eb24bd0205394f9b791de9eddbcb855 to < f2b579a0c37c0df19603d719894a942a295f634aaffected9873964d6eb24bd0205394f9b791de9eddbcb855 to < f94800fbc26ccf7c81eb791707b038a57aa39a18affected9873964d6eb24bd0205394f9b791de9eddbcb855 to < a9fb6e8835a22f5796c1182ed612daed3fd273afaffected9873964d6eb24bd0205394f9b791de9eddbcb855 to < c8cf0c2bdcccc6634b6915ff793b844e12436680affected9873964d6eb24bd0205394f9b791de9eddbcb855 to < 670d7ef945d3a84683594429aea6ab2cdfa5ceb4affected
Linux Linux
Default version status: affected
2.6.18affected0 to < 2.6.18unaffected5.10.248 to ≤ 5.10.*unaffected5.15.198 to ≤ 5.15.*unaffected6.1.160 to ≤ 6.1.*unaffected6.6.120 to ≤ 6.6.*unaffected6.12.64 to ≤ 6.12.*unaffected6.18.3 to ≤ 6.18.*unaffected6.19 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/3dceb68f6ad33156032ef4da21a93d84059cca6d ↗
- https://git.kernel.org/stable/c/bf5b03227f2e6d4360004886d268f9df8993ef8f ↗
- https://git.kernel.org/stable/c/f2b579a0c37c0df19603d719894a942a295f634a ↗
- https://git.kernel.org/stable/c/f94800fbc26ccf7c81eb791707b038a57aa39a18 ↗
- https://git.kernel.org/stable/c/a9fb6e8835a22f5796c1182ed612daed3fd273af ↗
- https://git.kernel.org/stable/c/c8cf0c2bdcccc6634b6915ff793b844e12436680 ↗
- https://git.kernel.org/stable/c/670d7ef945d3a84683594429aea6ab2cdfa5ceb4 ↗