Skip to main content
← All vulnerabilities
CVE-2026-97905

cpufreq: zero-initialize policy cpumask before sysfs publication

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.111, and 2 more
None on Exploit-DB, Metasploit or GitHub

Summary

In the Linux kernel, the following vulnerability has been resolved: cpufreq: zero-initialize policy cpumask before sysfs publication cpufreq_policy_alloc() allocates policy->cpus with alloc_cpumask_var(), i.e. without __GFP_ZERO, unlike the sibling related_cpus and real_cpus masks. With CONFIG_CPUMASK_OFFSTACK=y the mask is a separate kmalloc_node() allocation, so its bitmap holds whatever the slab allocator left behind: cpufreq_online() cpufreq_policy_alloc() alloc_cpumask_var(&policy->cpus) /* bitmap is uninitialized */ kobject_init_and_add() /* policy%u/ appears in sysfs */ cpufreq_policy_online() cpumask_copy(policy->cpus, cpumask_of(cpu)) /* first valid value */ This leaves a window in which the sysfs attributes are already reachable while policy->cpus is still garbage. show()/store() gate on policy_is_inactive(), i.e. cpumask_empty(policy->cpus), so a non-zero bitmap makes them run the attribute callbacks on a policy that is not initialized yet. Fix this by using zalloc_cpumask_var() for policy->cpus.

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • Linux Linux

    From 2fc3384dc75bf7333384c7a16d12c796f61c3f56 · fixed in e13370c5b549712f49f80234df249303381c53b4; From 2fc3384dc75bf7333384c7a16d12c796f61c3f56 · fixed in e807920031ca32b668f9e7a1efbd21858f03d64b; From 2fc3384dc75bf7333384c7a16d12c796f61c3f56 · fixed in ca52482508b3ac9febe74ca4f732647d394727b8; From 2fc3384dc75bf7333384c7a16d12c796f61c3f56 · fixed in 06f273d29e5e0fe5c775a65c563fbeed8cd94c7a; From 2fc3384dc75bf7333384c7a16d12c796f61c3f56 · fixed in 0de2f3918fbbbb767e7e716178194b66560dd12a; From 2fc3384dc75bf7333384c7a16d12c796f61c3f56 · fixed in 6e166b9281dec98aed19213a84235250e5fdb081; From 2fc3384dc75bf7333384c7a16d12c796f61c3f56 · fixed in bbc0472d2270bf732142ca71579d6ede636174ed; From 2fc3384dc75bf7333384c7a16d12c796f61c3f56 · fixed in 54d37bcf2f497140b9207968557ddb484058e749

  • Linux Linux

    4.2

  • KernelLinux

    From 4.2.0 · fixed in 5.10.271; From 5.11.0 · fixed in 5.15.222; From 5.16.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.111; From 6.13.0 · fixed in 6.18.53; From 6.19.0 · fixed in 7.2.7

References 8

git.kernel.org