{"id":"CVE-2026-97905","title":"In the Linux kernel, the following vulnerability has been resolved:\n\ncpufreq: zero-initialize policy cpumask before sysfs publication\n\ncpufreq_policy_alloc() allocates policy->cpus with alloc_cpumask_var(),\ni.e","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\ncpufreq: zero-initialize policy cpumask before sysfs publication\n\ncpufreq_policy_alloc() allocates policy->cpus with alloc_cpumask_var(),\ni.e. without __GFP_ZERO, unlik…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 2fc3384dc75bf7333384c7a16d12c796f61c3f56 < 0de2f3918fbbbb767e7e716178194b66560dd12a","Linux >= 2fc3384dc75bf7333384c7a16d12c796f61c3f56 < 6e166b9281dec98aed19213a84235250e5fdb081","Linux >= 2fc3384dc75bf7333384c7a16d12c796f61c3f56 < bbc0472d2270bf732142ca71579d6ede636174ed","Linux >= 2fc3384dc75bf7333384c7a16d12c796f61c3f56 < 54d37bcf2f497140b9207968557ddb484058e749","Linux 4.2"],"published":"2026-09-25","updated":"2026-09-25","sourceUpdated":"2026-09-25T11:17:17.403","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-97905","references":[{"url":"https://git.kernel.org/stable/c/0de2f3918fbbbb767e7e716178194b66560dd12a","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/54d37bcf2f497140b9207968557ddb484058e749","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/6e166b9281dec98aed19213a84235250e5fdb081","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/bbc0472d2270bf732142ca71579d6ede636174ed","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"}],"tags":["nvd","cve.org"],"ingestedAt":"2026-09-25T11:06:38.894Z","slug":"CVE-2026-97905","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\ncpufreq: zero-initialize policy cpumask before sysfs publication\n\ncpufreq_policy_alloc() allocates policy->cpus with alloc_cpumask_var(),\ni.e. without __GFP_ZERO, unlike the sibling related_cpus and real_cpus\nmasks. With CONFIG_CPUMASK_OFFSTACK=y the mask is a separate\nkmalloc_node() allocation, so its bitmap holds whatever the slab allocator\nleft behind:\n\n  cpufreq_online()\n    cpufreq_policy_alloc()\n      alloc_cpumask_var(&policy->cpus)    /* bitmap is uninitialized */\n      kobject_init_and_add()              /* policy%u/ appears in sysfs */\n    cpufreq_policy_online()\n      cpumask_copy(policy->cpus, cpumask_of(cpu))  /* first valid value */\n\nThis leaves a window in which the sysfs attributes are already reachable\nwhile policy->cpus is still garbage. show()/store() gate on\npolicy_is_inactive(), i.e. cpumask_empty(policy->cpus), so a non-zero\nbitmap makes them run the attribute callbacks on a policy that is not\ninitialized yet.\n\nFix this by using zalloc_cpumask_var() for policy->cpus.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}