Skip to main content
← All vulnerabilities
CVE-2025-71111

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

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.10.248, 5.15.198, 6.1.160, 6.6.120, 6.12.64, and 1 more
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: partial

Summary

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.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • Linux Linux

    From 9873964d6eb24bd0205394f9b791de9eddbcb855 · fixed in 3dceb68f6ad33156032ef4da21a93d84059cca6d; From 9873964d6eb24bd0205394f9b791de9eddbcb855 · fixed in bf5b03227f2e6d4360004886d268f9df8993ef8f; From 9873964d6eb24bd0205394f9b791de9eddbcb855 · fixed in f2b579a0c37c0df19603d719894a942a295f634a; From 9873964d6eb24bd0205394f9b791de9eddbcb855 · fixed in f94800fbc26ccf7c81eb791707b038a57aa39a18; From 9873964d6eb24bd0205394f9b791de9eddbcb855 · fixed in a9fb6e8835a22f5796c1182ed612daed3fd273af; From 9873964d6eb24bd0205394f9b791de9eddbcb855 · fixed in c8cf0c2bdcccc6634b6915ff793b844e12436680; From 9873964d6eb24bd0205394f9b791de9eddbcb855 · fixed in 670d7ef945d3a84683594429aea6ab2cdfa5ceb4

  • Linux Linux

    2.6.18

  • KernelLinux

    From 2.6.18 · fixed in 5.10.248; From 5.11.0 · fixed in 5.15.198; From 5.16.0 · fixed in 6.1.160; From 6.2.0 · fixed in 6.6.120; From 6.7.0 · fixed in 6.12.64; From 6.13.0 · fixed in 6.18.3

References 7

git.kernel.org