CyberRota Analysis
AI-GeneratedThe vulnerability in the Linux kernel affects the scheduling extension (sched_ext) by introducing a potential deadlock scenario when acquiring locks in the wrong order. Specifically, the scx_cgroup_lock() function can lead to a deadlock involving cgroup_lock() and rwsem, impacting system stability and performance. Organizations utilizing Linux-based systems, particularly those leveraging cgroup functionalities for resource management, should prioritize addressing this issue to prevent operational disruptions.
Original NVD 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.