CVE-2022-50103: sched, cpuset: Fix dl_cpu_busy() panic due to empty cs->cpus_allowed
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.
Security readout for executives and security teams
Plain-English summary
CVE-2022-50103 is a Linux kernel cpuset scheduler bug that can cause a kernel panic when cgroup v2 cpuset CPU masks are empty. The business impact is potential system outage, not proven data theft or remote compromise from the supplied sources.
Executive priority
Treat as a reliability and availability risk for Linux infrastructure. Prioritize patch validation for container hosts and systems relying on cgroups, but do not escalate as known exploited based on the supplied evidence.
Technical view
In cgroup v2, cpuset cpus_allowed may be empty while effective_cpus inherits usable CPUs. cpuset_can_attach() could pass the empty mask into task_can_attach(), causing cpumask_any_and() to return nr_cpu_ids and dl_bw_of() to access an out-of-bounds per-CPU value in dl_cpu_busy().
Likely exposure
Exposure appears limited to Linux systems running affected kernel ranges with cgroup/cpuset behavior, especially cgroup v2. The source bundle does not map this to distribution packages, cloud images, or appliances.
Exploitation context
The supplied sources describe a crash path through cgroup cpuset operations and show a kernel panic trace. They do not state active exploitation, remote exploitability, privilege requirements, or public weaponization. CISA KEV status is false.
Researcher notes
The fix changes cpuset attach logic to use effective_cpus and adds a guard when cpumask_any_and() returns a CPU index at or above nr_cpu_ids. The source bundle lacks CVSS, CWE, exploitability analysis, and distribution-specific affected package data.
Mitigation direction
Check your Linux vendor or distribution advisory for CVE-2022-50103 guidance.
Update to a kernel build that includes the referenced stable fixes.
Prioritize hosts using cgroup v2, cpusets, containers, or scheduler deadline workloads.
Use normal change control because remediation changes the running kernel.
Validation and detection
Inventory Linux kernel versions across servers, containers hosts, and appliances.
Identify systems using cgroup v2 cpuset functionality.
Confirm whether vendor kernel builds include one of the referenced stable commits.
Review crash logs for dl_cpu_busy, cpuset_can_attach, or cgroup_subtree_control_write traces.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2022-50103 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
0CVSS vectors
3Timeline events
0ADP providers
6Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Jun 18, 2025, 11:02 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.