CVE-2023-52831

Source
https://cve.org/CVERecord?id=CVE-2023-52831
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-52831.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2023-52831
Downstream
Related
Published
2024-05-21T15:31:33.566Z
Modified
2026-03-23T05:04:24.462170539Z
Summary
cpu/hotplug: Don't offline the last non-isolated CPU
Details

In the Linux kernel, the following vulnerability has been resolved:

cpu/hotplug: Don't offline the last non-isolated CPU

If a system has isolated CPUs via the "isolcpus=" command line parameter, then an attempt to offline the last housekeeping CPU will result in a WARNON() when rebuilding the scheduler domains and a subsequent panic due to and unhandled empty CPU mas in partitionscheddomainslocked().

cpusethotplugworkfn() rebuildscheddomainslocked() ndoms = generatescheddomains(&doms, &attr); cpumaskand(doms[0], topcpuset.effectivecpus, housekeepingcpumask(HKFLAG_DOMAIN));

Thus results in an empty CPU mask which triggers the warning and then the subsequent crash:

WARNING: CPU: 4 PID: 80 at kernel/sched/topology.c:2366 buildscheddomains+0x120c/0x1408 Call trace: buildscheddomains+0x120c/0x1408 partitionscheddomainslocked+0x234/0x880 rebuildscheddomainslocked+0x37c/0x798 rebuildscheddomains+0x30/0x58 cpusethotplugworkfn+0x2a8/0x930

Unable to handle kernel paging request at virtual address fffe80027ab37080 partitionscheddomainslocked+0x318/0x880 rebuildscheddomainslocked+0x37c/0x798

Aside of the resulting crash, it does not make any sense to offline the last last housekeeping CPU.

Prevent this by masking out the non-housekeeping CPUs when selecting a target CPU for initiating the CPU unplug operation via the work queue.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/52xxx/CVE-2023-52831.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
fea9dd8653ff39ce383c54e747bde4c39289b4ad
Fixed
3410b702354702b500bde10e3cc1f9db8731d908
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
07f9e0c9987bf1c4ef57611ad2f789ba68978102
Fixed
335a47ed71e332c82339d1aec0c7f6caccfcda13
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
2b8272ff4a70b866106ae13c36be7ecbef5d5da2
Fixed
3073f6df783d9d75f7f69f73e16c7ef85d6cfb63
Fixed
38685e2a0476127db766f81b1c06019ddc4c9ffa
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Last affected
9734e4c0c470258c32b6aa5ea7ef8a86506c0909

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-52831.json"