CVE-2026-97905 PUBLISHED

cpufreq: zero-initialize policy cpumask before sysfs publication

Assigner: Linux
Reserved: 25.09.2026 Published: 25.09.2026 Updated: 25.09.2026

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.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 2fc3384dc75bf7333384c7a16d12c796f61c3f56 to 0de2f3918fbbbb767e7e716178194b66560dd12a (excl.)
  • affected from 2fc3384dc75bf7333384c7a16d12c796f61c3f56 to 6e166b9281dec98aed19213a84235250e5fdb081 (excl.)
  • affected from 2fc3384dc75bf7333384c7a16d12c796f61c3f56 to bbc0472d2270bf732142ca71579d6ede636174ed (excl.)
  • affected from 2fc3384dc75bf7333384c7a16d12c796f61c3f56 to 54d37bcf2f497140b9207968557ddb484058e749 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 4.2 is affected
  • unaffected from 0 to 4.2 (excl.)
  • unaffected from 6.12.111 to 6.12.* (incl.)
  • unaffected from 6.18.53 to 6.18.* (incl.)
  • unaffected from 7.2.7 to 7.2.* (incl.)
  • unaffected from 7.3-rc3 to * (incl.)

References