CVE-2026-98542 in Linux
요약
\~에 의해 VulDB • 2026. 10. 18.
리눅스 커널에서 다음 취약점이 해결되었습니다:
cgroup/cpuset: 하위 파티션의 cpus 충돌 시 remote_partition_enable()에서 PERR_NOCPUS를 반환합니다.
원격 파티션이 기존 로컬 파티션 아래에 비파티션(PRS_MEMBER) 중간 cgroup을 통해 생성될 때, update_prstate()는 parent->partition_root_state == PRS_MEMBER을 확인하고 remote_partition_enable()을 호출합니다.
커밋 86888c7bd117("cgroup/cpuset: 배타적 CPU의 불일치를 잡기 위한 경고 추가")은 remote_partition_enable() 내의 cpumask_intersects(tmp->new_cpus, subpartitions_cpus) 오류 검사를 WARN_ON_ONCE()로 대체했습니다. 그 결과, remote_partition_enable()은 경고를 출력하고 하위 파티션들의 cpus에 이미 조상 로컬 파티션이 소유한 CPU에서 원격 파티션을 활성화합니다.
이는 Linux 7.3.0-rc3에서 다음 명령어로 재현할 수 있습니다:
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
이는 다음을 유발합니다:
WARNING: kernel/cgroup/cpuset.c:1594 at remote_partition_enable+0x1c1/0x300
그리고 /tmp/cg1/A와 /tmp/cg1/A/B/D 모두 배타적 CPU 1을 주장하는 활성 루트 파티션으로 남습니다.
이 문제를 해결하기 위해, 동일한 하위 파티션 cpus 충돌에 대해 remote_cpus_update()에서 사용하는 오류 코드와 일치하도록 remote_partition_enable() 내에서 tmp->new_cpus가 subpartitions_cpus와 교차할 때 PERR_NOCPUS를 반환하고, tools/testing/selftests/cgroup/test_cpuset_prs.sh에 회귀 테스트 케이스를 추가합니다.
위 재현 도구 및 tools/testing/selftests/cgroup/test_cpuset_prs.sh를 사용하여 Linux 7.3.0-rc3의 QEMU에서 검증되었습니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.