🇰🇷 한글 설명
Linux 커널의 sched_ext 구성 요소에서 하위 스케줄러가 계층 구조에 연결되기 전에 비활성화될 경우 발생하는 레이스 컨디션 취약점입니다. 이로 인해 루트 스케줄러의 정리 작업과 하위 스케줄러의 작업 탐색 작업이 충돌하여 Use-After-Free 오류가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터의 작업 순서를 정하는 프로그램이 제대로 연결되지 않은 상태에서 종료될 때 발생하는 오류입니다. 이 오류를 이용하면 시스템이 비정상적으로 종료되거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
sched_ext: Skip sub-disable teardown for never-linked sub-schedulers
A sub-scheduler enable can fail before scx_link_sched() links the sched into
the hierarchy, e.g. when the parent is already being disabled, and cleanup
still runs the full scx_sub_disable().
That is racy against root disable: drain_descendants() is the only ordering
between a sub's disable-time task walk and root disable's all-task teardown,
and an unlinked sub is invisible to it. Root's teardown can thus run between
the never-linked sub's drain and its walk, exiting every task to no
scheduler.
The walk then trips the membership WARN and re-homes the exited tasks onto
the dying hierarchy, a use-after-free.
Skip the cgroup ownership reset and the task walk if @sch was never linked,
indicated by the empty ->sibling as unlinking only happens later in the same
function. The membership WARN remains valid: a linked sub is always waited
on by an ancestor's drain.
📍 영향받는 시스템
Linux kernel (sched_ext 기능이 포함된 버전)
⚔️ 공격 벡터
특정 조건에서 스케줄러를 빈번하게 활성화/비활성화하여 레이스 컨디션을 유도하는 방식
🛡️ 대응 방법
sched_ext 관련 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이상인지 확인합니다.