CVE-2022-50103

sched, cpuset: Fix dl_cpu_busy() panic due to empty cs->cpus_allowed

HIGH
7.1
CVSS Score
Published: June 18, 2025 at 11:02 AM UTC
Updated: June 17, 2026 at 05:22 AM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.1
Exploit prediction
EPSS 0.2%

Description

In the Linux kernel, the following vulnerability has been resolved: sched, cpuset: Fix dl_cpu_busy() panic due to empty cs->cpus_allowed With cgroup v2, the cpuset's cpus_allowed mask can be empty indicating that the cpuset will just use the effective CPUs of its parent. So cpuset_can_attach() can call task_can_attach() with an empty mask. This can lead to cpumask_any_and() returns nr_cpu_ids causing the call to dl_bw_of() to crash due to percpu value access of an out of bound CPU value. For example: [80468.182258] BUG: unable to handle page fault for address: ffffffff8b6648b0 : [80468.191019] RIP: 0010:dl_cpu_busy+0x30/0x2b0 : [80468.207946] Call Trace: [80468.208947] cpuset_can_attach+0xa0/0x140 [80468.209953] cgroup_migrate_execute+0x8c/0x490 [80468.210931] cgroup_update_dfl_csses+0x254/0x270 [80468.211898] cgroup_subtree_control_write+0x322/0x400 [80468.212854] kernfs_fop_write_iter+0x11c/0x1b0 [80468.213777] new_sync_write+0x11f/0x1b0 [80468.214689] vfs_write+0x1eb/0x280 [80468.215592] ksys_write+0x5f/0xe0 [80468.216463] do_syscall_64+0x5c/0x80 [80468.224287] entry_SYSCALL_64_after_hwframe+0x44/0xae Fix that by using effective_cpus instead. For cgroup v1, effective_cpus is the same as cpus_allowed. For v2, effective_cpus is the real cpumask to be used by tasks within the cpuset anyway. Also update task_can_attach()'s 2nd argument name to cs_effective_cpus to reflect the change. In addition, a check is added to task_can_attach() to guard against the possibility that cpumask_any_and() may return a value >= nr_cpu_ids.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

3.19 ≤ v < 5.10.1373.19 ≤ v < 5.15.613.19 ≤ v < 5.18.183.19 ≤ v < 5.19.23.19 ≤ v < 6.05.11 ≤ v < 5.15.615.16 ≤ v < 5.18.185.19 ≤ v < 5.19.23.197f51412a415d87ea8598d14722fb31e4f5701257
Vendor states this is fixed in 147f66d22f58712dce7ccdd6a1f6cb3ee8042df4 (fixed)
Vendor states this is fixed in 336626564b58071b8980a4e6a31a8f5d92705d9b (fixed)
Vendor states this is fixed in 357f3f0e522a6ce1ce4a571cb780d9861d53bec7 (fixed)
Vendor states this is fixed in b6e8d40d43ae4dec00c8fea2593eeea3114b8f44 (fixed)
Vendor states this is fixed in f56607b44c9896e51678a7e8cdd3a5479f4b4548 (fixed)
Vendor states this is fixed in 3.19 (unaffected)
Vendor states this is fixed in 5.10.137 (unaffected)
Vendor states this is fixed in 5.15.61 (unaffected)
Vendor states this is fixed in 5.18.18 (unaffected)
Vendor states this is fixed in 5.19.2 (unaffected)
Vendor states this is fixed in 6.0 (unaffected)

References (5)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/147f66d22f58712dce7ccdd6a1f6cb3ee8042df4
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/336626564b58071b8980a4e6a31a8f5d92705d9b
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/357f3f0e522a6ce1ce4a571cb780d9861d53bec7
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/b6e8d40d43ae4dec00c8fea2593eeea3114b8f44
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/f56607b44c9896e51678a7e8cdd3a5479f4b4548

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
HIGH
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusANALYZED
CWE
CWE-125

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card