🇰🇷 한글 설명
Linux 커널의 sched_ext 구성 요소에서 kick_sync 대기 프로세스가 해당 CPU가 아닌 다른 CPU에서 실행될 때 발생하는 취약점입니다. 이로 인해 잘못된 스냅샷 비교가 발생하여 시스템 데드락(Deadlock) 상태에 빠질 수 있습니다.
💡 쉬운 설명
컴퓨터의 작업 순서를 정하는 핵심 기능에서 작업이 엉뚱한 곳에서 처리되면서 시스템이 멈춰버릴 수 있는 문제입니다. 특정 상황에서 CPU들이 서로를 기다리며 아무것도 못 하는 상태가 될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
sched_ext: Keep kick_sync waiting on the rq's own CPU
kick_sync_wait_bal_cb() assumes it runs on the rq's CPU from the
__schedule() tail: the snapshots it compares against live in that CPU's
percpu area and the busy-wait runs with the rq lock dropped and IRQs
enabled.
However, dispatch can now drop the rq lock while the callback sits queued,
and rq lock takers in that window (the sched class change paths, the scx
task iterator) flush pending balance callbacks on release, running the
callback on a foreign CPU. Such a run compares against unrelated snapshots
and can deadlock when the executing CPU is itself a wait target.
Bail on a foreign CPU and leave the wait state alone. The wait only observes
progress that the resched kicks already guarantee and the rq's next wait
picks up the stale cpus_to_sync bits.
📍 영향받는 시스템
Linux kernel (sched_ext 기능이 활성화된 버전)
⚔️ 공격 벡터
로컬 시스템에서 특정 스케줄링 작업 부하를 유도하여 데드락 유발
🛡️ 대응 방법
sched_ext 관련 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이상인지 확인