CVE-2025-68780 in Linux정보

요약

\~에 의해 VulDB • 2026. 06. 12.

리눅스 커널에서 다음 취약점이 해결되었습니다:

sched/deadline: 온라인 상태인 런큐(runqueues)에 대해서만 free_cpus를 설정합니다

커밋 16b269436b72("sched/deadline: rd->online을 반영하도록 cpudl::free_cpus 수정")는 cpu_dl::free_cpus 마스크가 rq_on/offline 콜백에서 데드라인 스케줄러 클래스에 의해 조작될 수 있도록 하여, 해당 상태도 마스크에 반영되도록 하기 위해 cpudl_set/clear_freecpu 함수들을 도입했습니다.

커밋 9659e1eeee28("sched/deadline: cpudl_find()에서 cpu_active_mask 제거")는 처리량을 절약하기 위한 전제 하에, cpudl::free_cpus 마스크가 이미 런큐의 온라인 상태를 반영하고 있다는 이유로 cpu_active_MASK 체크를 제거했습니다.

불행히도 데드라인 런큐가 오프라인 상태일 때 cpudl_clear 함수가 특정 CPU에 대해 free_cpus 비트를 설정할 수 있는 경우가 있습니다. 이 상황이 CPU가 기본 루트 도메인(root domain)에 연결되어 있을 때 발생하면, 해당 CPU가 언플러그된 후에도 플래그가 잘못된 상태를 유지할 수 있습니다. 나중에 다른 CPU가 기본 루트 도메인을 통과하면서 전환될 때, cpudl_find는 free_cpus 비트가 설정되어 있음을 감지하고 데드라인 작업을 전원 차단(power down)된 CPU로 푸시(push)할 수 있습니다. 이렇게 되면 해당 작업은 실행될 기회를 갖지 못하게 됩니다.

다음 링크에서 이러한 사례 중 하나가 설명되어 있습니다: https://lore.kernel.org/lkml/[email protected]

또 다른 경우는 마지막 데드라인 작업이 런큐가 오프라인 상태인 CPU에서 마이그레이션될 때 발생합니다. 데드라인 스케줄러 클래스의 dequeue_task 멤버는 결국 cpudl_clear를 호출하여 해당 CPU에 대한 free_cpus 비트를 설정하게 됩니다.

이번 커밋은 cpudl_clear 함수를 수정하여 데드라인 런큐의 온라인 상태를 인식하도록 함으로써, free_cpus 마스크가 적절히 업데이트되도록 합니다.

이제 cpudl_set/clear_freecpu 함수들은 더 이상 필요하지 않으므로 제거됩니다. 또한 free_cpus 마스크는 이제 cpudl 잠금(lock) 하에서만 업데이트되므로, 코드가 비원자성(non-atomic) __cpumask 함수들을 사용하도록 변경되었습니다.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

책임이 있는

Linux

예약하다

2025. 12. 24.

모더레이션

수락

항목

VDB-340632

EPSS

0.00173

출처

Do you know our Splunk app?

Download it now for free!