🇰🇷 한글 설명
Linux 커널의 코어 스케줄링(Core scheduling) 과정에서 발생하는 레이스 컨디션 취약점입니다. 스케줄링 작업 중 락(lock)이 해제되는 찰나에 코어 설정이 변경될 경우, 잘못된 락 상태로 인해 시스템 상태가 손상되거나 락 누수가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터의 두뇌 역할을 하는 CPU가 작업을 나누어 처리하는 과정에서, 작업 순서를 정하는 규칙이 갑자기 바뀌어 충돌이 발생하는 문제입니다. 이로 인해 시스템이 불안정해지거나 보안 제어가 제대로 작동하지 않을 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
sched/core: Make core-sched flips wait for in-flight selections
Core scheduling's pick_next_task() operates on all sibling rqs under one
acquisition of the shared core-wide lock. A ->pick_task() that releases the
rq lock leaves every sibling __lock momentarily free, letting
__sched_core_flip(false) complete mid-selection and rebind rq_lockp() under
it. The selection resumes on the split locks, touching sibling state it no
longer protects, and __schedule() finally releases a lock that was never
taken while leaking the one that was.
Count in-flight core-wide selections in the leader's rq->core_pick_in_flight
and make __sched_core_flip() wait for the count to drain. The count only
changes under the shared lock, which the flip holds while sampling, so no
other ordering is needed. The wait can repeat while selections overlap, but
the flip backs off between samples and flips are rare cookie-lifetime
events.
sched_core_cpu_deactivate() moves the count to the new leader - a stale copy
left behind would bias it forever if that CPU later returns as its own
leader.
📍 영향받는 시스템
Linux Kernel (Core scheduling 기능이 활성화된 버전)
⚔️ 공격 벡터
로컬 시스템에서 특정 스케줄링 상황을 유도하여 커널 락 상태를 교란하는 방식
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.