🇰🇷 한글 설명
Linux 커널의 sched_ext 구성 요소에서 DSQ(Dispatch Queue)가 파괴된 후에도 지연된 재할당 프로세스가 실행될 때 발생하는 오류입니다. DSQ가 유효하지 않은 상태임에도 불구하고 BUG_ON 매크로가 호출되어 시스템이 중단될 수 있는 취약점이 수정되었습니다.
💡 쉬운 설명
컴퓨터의 작업 처리 순서를 관리하는 기능에서, 이미 삭제된 작업 목록을 참조하려다 시스템이 멈추는 문제가 있었습니다. 이 문제를 해결하여 삭제된 목록을 참조하더라도 시스템이 오류로 멈추지 않도록 개선했습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
sched_ext: Don't BUG_ON a destroyed DSQ in process_deferred_reenq_users
scx_bpf_dsq_reenq() queues a deferred reenq (dru) that runs from
run_deferred(), not ops.dispatch(). If the DSQ is destroyed before the dru
runs, process_deferred_reenq_users() sees dsq->id == SCX_DSQ_INVALID and
hits the BUG_ON. destroy_dsq() doesn't flush pending drus, so just skip.
tj: Read dsq->id once with READ_ONCE(). Reading it separately in the INVALID
check and the BUG_ON would leave a window where destroy_dsq() can
invalidate the id between the two reads and still trigger the BUG_ON.
📍 영향받는 시스템
Linux kernel (sched_ext 기능이 포함된 버전)
⚔️ 공격 벡터
로컬 시스템에서 특정 스케줄링 조건(sched_ext 사용 시)을 유도하여 커널 패닉(Kernel Panic)을 일으킴
🛡️ 대응 방법
sched_ext 관련 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인