GHSA-P8MX-G9VJ-J29M
Vulnerability from github – Published: 2026-09-25 12:31 – Updated: 2026-09-25 12:31In 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.
{
"affected": [],
"aliases": [
"CVE-2026-97905"
],
"database_specific": {
"cwe_ids": [],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-09-25T11:17:17Z",
"severity": null
},
"details": "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-\u003ecpus 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(\u0026policy-\u003ecpus) /* bitmap is uninitialized */\n kobject_init_and_add() /* policy%u/ appears in sysfs */\n cpufreq_policy_online()\n cpumask_copy(policy-\u003ecpus, cpumask_of(cpu)) /* first valid value */\n\nThis leaves a window in which the sysfs attributes are already reachable\nwhile policy-\u003ecpus is still garbage. show()/store() gate on\npolicy_is_inactive(), i.e. cpumask_empty(policy-\u003ecpus), 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-\u003ecpus.",
"id": "GHSA-p8mx-g9vj-j29m",
"modified": "2026-09-25T12:31:27Z",
"published": "2026-09-25T12:31:27Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-97905"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/0de2f3918fbbbb767e7e716178194b66560dd12a"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/54d37bcf2f497140b9207968557ddb484058e749"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/6e166b9281dec98aed19213a84235250e5fdb081"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/bbc0472d2270bf732142ca71579d6ede636174ed"
}
],
"schema_version": "1.4.0",
"severity": []
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.