🇰🇷 한글 설명
Linux 커널의 sched_ext 구성 요소에서 PREEMPT_RT 설정 시 deferred_irq_workfn() 함수 실행 중 데드락(교착 상태)이 발생할 수 있는 취약점입니다. 이 문제는 rq->scx.deferred_irq_work를 초기화할 때 IRQ_WORK_INIT_HARD()를 사용하여 해당 함수가 항상 하드웨어 인터럽트(hard-irq) 컨텍스트에서 실행되도록 수정되었습니다.
💡 쉬운 설명
컴퓨터의 두 작업이 서로 상대방의 작업이 끝나기만을 기다리며 멈춰버리는 '데드락' 현상이 발생할 수 있는 오류입니다. 이 오류가 발생하면 시스템이 응답하지 않거나 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
sched_ext: Fix possible deadlock in the deferred_irq_workfn()
For PREEMPT_RT=y kernels, the deferred_irq_workfn() is executed in
the per-cpu irq_work/* task context and not disable-irq, if the rq
returned by container_of() is current CPU's rq, the following scenarios
may occur:
lock(&rq->__lock);
<Interrupt>
lock(&rq->__lock);
This commit use IRQ_WORK_INIT_HARD() to replace init_irq_work() to
initialize rq->scx.deferred_irq_work, make the deferred_irq_workfn()
is always invoked in hard-irq context.
📍 영향받는 시스템
PREEMPT_RT 옵션이 활성화된 Linux 커널 (sched_ext 사용 시)
⚔️ 공격 벡터
로컬 시스템에서 특정 스케줄링 작업을 유도하여 커널 데드락 유발
🛡️ 대응 방법
sched_ext 패치가 적용된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인