Skip to content
CVE PROGRAM SOURCE RECORDUnscored

CVE-2025-71111

hwmon: (w83791d) Convert macros to functions to avoid TOCTOU

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 < 3dceb68f6ad33156032ef4da21a93d84059cca6daffected
  • 9873964d6eb24bd0205394f9b791de9eddbcb855 to < bf5b03227f2e6d4360004886d268f9df8993ef8faffected
  • 9873964d6eb24bd0205394f9b791de9eddbcb855 to < f2b579a0c37c0df19603d719894a942a295f634aaffected
  • 9873964d6eb24bd0205394f9b791de9eddbcb855 to < f94800fbc26ccf7c81eb791707b038a57aa39a18affected
  • 9873964d6eb24bd0205394f9b791de9eddbcb855 to < a9fb6e8835a22f5796c1182ed612daed3fd273afaffected
  • 9873964d6eb24bd0205394f9b791de9eddbcb855 to < c8cf0c2bdcccc6634b6915ff793b844e12436680affected
  • 9873964d6eb24bd0205394f9b791de9eddbcb855 to < 670d7ef945d3a84683594429aea6ab2cdfa5ceb4affected

Linux Linux

Default version status: affected

  • 2.6.18affected
  • 0 to < 2.6.18unaffected
  • 5.10.248 to ≤ 5.10.*unaffected
  • 5.15.198 to ≤ 5.15.*unaffected
  • 6.1.160 to ≤ 6.1.*unaffected
  • 6.6.120 to ≤ 6.6.*unaffected
  • 6.12.64 to ≤ 6.12.*unaffected
  • 6.18.3 to ≤ 6.18.*unaffected
  • 6.19 to ≤ *unaffected

References