hwmon: (w83791d) Convert macros to functions to avoid TOCTOU (Linux Linux)
At a glance
- Source
- NVD
- EPSS
- EPSS 0.10 % · percentile 1 ()
- State
- PUBLISHED
- Published
- Updated
- Assigner
- Linux
- NVD status
- Modified
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.
Weaknesses (CWE)
- CWE-362 — Concurrent Execution using Shared Resource with Improper Synchronization
- CWE-367 — Time-of-check Time-of-use (TOCTOU) Race Condition
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
Scores
| Version | Score | Vector | Scored by |
|---|---|---|---|
| CVSS 3.1 | MEDIUM 4.7 | CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H | NVD · nvd@nist.gov (Primary) |
European references
- ENISA EUVD · EUVD-2026-2501
- GCVE · GCVE-0-2025-71111
CERT-FR advisories
- CERTFR-2026-AVI-0787 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0602 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0545 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0522 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0495 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0453 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0421 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0397 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0371 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0369 — Multiples vulnérabilités dans le noyau Linux de SUSE · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0331 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0326 — Multiples vulnérabilités dans les produits VMware · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0316 — Multiples vulnérabilités dans les produits VMware · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0247 — Multiples vulnérabilités dans le noyau Linux de SUSE · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0225 — Multiples vulnérabilités dans le noyau Linux de SUSE · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0170 — Multiples vulnérabilités dans le noyau Linux de SUSE · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0167 — Multiples vulnérabilités dans le noyau Linux de Debian LTS · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0166 — Multiples vulnérabilités dans le noyau Linux de Debian · cert.ssi.gouv.fr
Affected configurations (NVD CPE)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 2.6.18.1 < 5.10.248cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 5.11 < 5.15.198cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 5.16 < 6.1.160cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 6.2 < 6.6.120cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 6.7 < 6.12.64cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 6.13 < 6.18.3cpe:2.3:o:linux:linux_kernel:2.6.18:-:*:*:*:*:*:*cpe:2.3:o:linux:linux_kernel:6.19:rc1:*:*:*:*:*:*cpe:2.3:o:linux:linux_kernel:6.19:rc2:*:*:*:*:*:*cpe:2.3:o:linux:linux_kernel:6.19:rc3:*:*:*:*:*:*cpe:2.3:o:linux:linux_kernel:6.19:rc4:*:*:*:*:*:*cpe:2.3:o:linux:linux_kernel:6.19:rc5:*:*:*:*:*:*cpe:2.3:o:linux:linux_kernel:6.19:rc6:*:*:*:*:*:*cpe:2.3:o:linux:linux_kernel:6.19:rc7:*:*:*:*:*:*cpe:2.3:o:linux:linux_kernel:6.19:rc8:*:*:*:*:*:*
Affected products
| Product | Versions |
|---|---|
| Linux · Linux | affected 9873964d6eb24bd0205394f9b791de9eddbcb855 < 3dceb68f6ad33156032ef4da21a93d84059cca6d ; affected 9873964d6eb24bd0205394f9b791de9eddbcb855 < bf5b03227f2e6d4360004886d268f9df8993ef8f ; affected 9873964d6eb24bd0205394f9b791de9eddbcb855 < f2b579a0c37c0df19603d719894a942a295f634a ; affected 9873964d6eb24bd0205394f9b791de9eddbcb855 < f94800fbc26ccf7c81eb791707b038a57aa39a18 ; affected 9873964d6eb24bd0205394f9b791de9eddbcb855 < a9fb6e8835a22f5796c1182ed612daed3fd273af ; affected 9873964d6eb24bd0205394f9b791de9eddbcb855 < c8cf0c2bdcccc6634b6915ff793b844e12436680 |
| Linux · Linux | affected 2.6.18 ; unaffected 0 < 2.6.18 ; unaffected 5.10.248 ≤ 5.10.* ; unaffected 5.15.198 ≤ 5.15.* ; unaffected 6.1.160 ≤ 6.1.* ; unaffected 6.6.120 ≤ 6.6.* |
Sources
| Source | Licence |
|---|---|
| CVE List (CVEProject cvelistV5) | CVE Program Terms of Use |
| EPSS (FIRST.org) | FIRST — attribution requested |
| ENISA EUVD | ENISA — reproduction authorised, source acknowledged |
| CERT-FR (ANSSI) | Licence Ouverte / Etalab 2.0 |
| NVD (NIST) via fkie-cad/nvd-json-data-feeds | Public domain — this product uses data from the NVD API but is not endorsed or certified by the NVD |