CVE-2026-98542 in Linux
Tóm tắt
Bởi VulDB • 18/10/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
cgroup/cpuset: Trả về PERR_NOCPUS trong remote_partition_enable() khi xảy ra xung đột subpartitions_cpus
Khi một partition từ xa (remote) được tạo bên dưới một local partition hiện có thông qua một cgroup trung gian không phải là partition (PRS_MEMBER), hàm update_prstate() sẽ thấy parent->partition_root_state == PRS_MEMBER và gọi remote_partition_enable().
Commit 86888c7bd117 ("cgroup/cpuset: Add warnings to catch inconsistency in exclusive CPUs") đã thay thế kiểm tra lỗi cpumask_intersects(tmp->new_cpus, subpartitions_cpus) trong remote_partition_enable() bằng WARN_ON_ONCE(). Kết quả là, remote_partition_enable() phát ra cảnh báo và tiếp tục kích hoạt partition từ xa trên các CPU vốn đang thuộc sở hữu của local partition tổ tiên trong subpartitions_cpus.
Vấn đề này có thể được tái hiện trên Linux 7.3.0-rc3 với:
mkdir -p /tmp/cg1 mount -t cgroup2 none /tmp/cg1 echo "+cpuset" > /tmp/cg1/cgroup.subtree_control
mkdir /tmp/cg1/A echo 1 > /tmp/cg1/A/cpuset.cpus echo 1 > /tmp/cg1/A/cpuset.cpus.exclusive echo root > /tmp/cg1/A/cpuset.cpus.partition echo "+cpuset" > /tmp/cg1/A/cgroup.subtree_control
mkdir /tmp/cg1/A/B echo 1 > /tmp/cg1/A/B/cpuset.cpus echo 1 > /tmp/cg1/A/B/cpuset.cpus.exclusive echo "+cpuset" > /tmp/cg1/A/B/cgroup.subtree_control
mkdir /tmp/cg1/A/B/D echo 1 > /tmp/cg1/A/B/D/cpuset.cpus echo 1 > /tmp/cg1/A/B/D/cpuset.cpus.exclusive echo root > /tmp/cg1/A/B/D/cpuset.cpus.partition
Điều này kích hoạt:
WARNING: kernel/cgroup/cpuset.c:1594 tại remote_partition_enable+0x1c1/0x300
và để lại cả /tmp/cg1/A và /tmp/cg1/A/B/D ở trạng thái là các root partition đang hoạt động, cùng yêu cầu quyền sở hữu độc lập (exclusive) đối với CPU 1.
Khắc phục vấn đề bằng cách trả về PERR_NOCPUS khi tmp->new_cpus giao thoa với subpartitions_cpus trong remote_partition_enable(), phù hợp với mã lỗi được sử dụng bởi remote_cpus_update() cho xung đột subpartitions_cpus tương tự, và thêm một trường hợp kiểm tra hồi quy (regression test case) vào tools/testing/selftests/cgroup/test_cpuset_prs.sh.
Đã được thử nghiệm trên QEMU chạy Linux 7.3.0-rc3 bằng cách sử dụng trình tái hiện ở trên và tools/testing/selftests/cgroup/test_cpuset_prs.sh.
If you want to get best quality of vulnerability data, you may have to visit VulDB.