CVE-2023-52942

Summary

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

cgroup/cpuset: Fix wrong check in update_parent_subparts_cpumask()

It was found that the check to see if a partition could use up all the cpus from the parent cpuset in update_parent_subparts_cpumask() was incorrect. As a result, it is possible to leave parent with no effective cpu left even if there are tasks in the parent cpuset. This can lead to system panic as reported in [1].

Fix this probem by updating the check to fail the enabling the partition if parent's effective_cpus is a subset of the child's cpus_allowed.

Also record the error code when an error happens in update_prstate() and add a test case where parent partition and child have the same cpu list and parent has task. Enabling partition in the child will fail in this case.

[1] https://www.spinics.net/lists/cgroups/msg36254.html

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxf0af1bfc27b52a4d42510051154c61bd176a8f06 < a2ab7f2cf5ef8f0c6212a246e681d1fe358cec1faffected
LinuxLinuxf0af1bfc27b52a4d42510051154c61bd176a8f06 < e5ae8803847b80fe9d744a3174abe2b7bfed222aaffected
LinuxLinux6.1affected
LinuxLinux0 < 6.1unaffected
LinuxLinux6.1.11 <= 6.1.*unaffected
LinuxLinux6.2 <= *unaffected

Weaknesses

References