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

sched_ext: Take cgroup_lock() first in scx_cgroup_lock()

scx_cgroup_lock() write-locks scx_cgroup_ops_rwsem and then takes
cgroup_lock(), which can deadlock through kernfs:

scx enable/disable cgroup rmdir cpu.weight write
------------------ ------------ ----------------
cgroup_lock()
percpu_down_write(rwsem)
cgroup_lock()
kernfs_get_active()
percpu_down_read(rwsem)
kernfs_drain()

The enable path waits for the rmdir to release cgroup_mutex. The rmdir,
deactivating the cpu controller's files, waits in kernfs_drain() for the
write's active reference. The write, in scx_group_set_weight(), waits for
the rwsem behind the pending writer.

Take cgroup_lock() first. The set_* paths take no cgroup locks inside the
read side, so a pending write-lock then only waits for read sections that
always run to completion, and no dependency from the rwsem back to
cgroup_mutex remains.
Published: 2026-08-22
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

This vulnerability is a lock ordering flaw in the Linux kernel’s sched_ext module. The function scx_cgroup_lock() previously acquired a read‑write semaphore before calling cgroup_lock(), creating a circular dependency that can lead to a deadlock when cgroup-controlled operations and cpu weight modifications are performed concurrently. The resulting deadlock can halt scheduler activity and freeze the system, providing a clear denial‑of‑service impact.

Affected Systems

The flaw affects the Linux kernel in any release that includes the legacy lock ordering in scx_cgroup_lock(). No specific version range is documented, so any kernel built before the commit that swaps the lock order is potentially vulnerable. Systems running recent kernel releases that incorporate the patch described in the advisory are considered safe.

Risk and Exploitability

The CVE description does not provide a CVSS or EPSS score; the EPSS is listed as not available and the vulnerability is not in the CISA KEV catalog. The deadlock requires the execution of cgroup or scheduler‑extended API paths that acquire both the cgroup lock and the scx_cgroup_ops_rwsem. Based on the description, it is inferred that an attacker must have kernel‑level or privileged access to trigger these paths, as they are not exposed through standard user‑space interfaces. Consequently, the primary exploitation vector is local or privileged code, although any process that manipulates cgroup CPU weight settings could inadvertently exercise the vulnerable ordering and cause a system freeze. The absence of a publicly available exploit does not diminish the risk, because the conditions for deadlock can occur naturally under heavy or conflicting cgroup activity.

Generated by OpenCVE AI on August 22, 2026 at 19:10 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a release that incorporates the patch which changes the lock acquisition order in scx_cgroup_lock().
  • If an immediate kernel update is not feasible, disable the sched_ext feature by setting the corresponding kernel boot‑parameter or writing "0" to /proc/sys/kernel/sched_ext to avoid the problematic code path.
  • Monitor kernel logs, system stability, and cgroup management activity for symptoms of deadlock. Reduce concurrent cgroup weight adjustments and scheduler‑extended operations during the transition period.

Generated by OpenCVE AI on August 22, 2026 at 19:10 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 22 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-395

Sat, 22 Aug 2026 15:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: sched_ext: Take cgroup_lock() first in scx_cgroup_lock() scx_cgroup_lock() write-locks scx_cgroup_ops_rwsem and then takes cgroup_lock(), which can deadlock through kernfs: scx enable/disable cgroup rmdir cpu.weight write ------------------ ------------ ---------------- cgroup_lock() percpu_down_write(rwsem) cgroup_lock() kernfs_get_active() percpu_down_read(rwsem) kernfs_drain() The enable path waits for the rmdir to release cgroup_mutex. The rmdir, deactivating the cpu controller's files, waits in kernfs_drain() for the write's active reference. The write, in scx_group_set_weight(), waits for the rwsem behind the pending writer. Take cgroup_lock() first. The set_* paths take no cgroup locks inside the read side, so a pending write-lock then only waits for read sections that always run to completion, and no dependency from the rwsem back to cgroup_mutex remains.
Title sched_ext: Take cgroup_lock() first in scx_cgroup_lock()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-22T15:31:44.160Z

Reserved: 2026-08-15T05:44:03.919Z

Link: CVE-2026-74593

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-22T16:16:31.573

Modified: 2026-08-22T16:16:31.573

Link: CVE-2026-74593

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-22T19:15:03Z

Weaknesses
  • CWE-395

    Use of NullPointerException Catch to Detect NULL Pointer Dereference