🇰🇷 한글 설명
리눅스 커널의 스케줄러 코어에서 프록시 기여자(proxy donor)가 마이그레이션이 금지된 상태임에도 불구하고 잠금 소유자의 CPU로 이동할 때 발생하는 잘못된 경고 문제입니다. 이 취약점은 실제 실행 컨텍스트 위반이 아님에도 불구하고 set_task_cpu() 함수가 무조건적인 경고를 발생시켜 시스템 로그에 오탐을 남깁니다.
💡 쉬운 설명
컴퓨터의 작업 처리 과정에서 특정 작업이 이동하지 못하도록 설정되어 있음에도, 시스템이 이를 잘못 판단하여 오류 경고를 띄우는 문제입니다. 이는 실제 보안 위협이라기보다 시스템 운영 중 불필요한 경고 메시지가 발생하는 현상입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
sched/core: Avoid false migration warning for proxy donors
Proxy execution can move a blocked donor's scheduling context to the
lock owner's CPU even when the donor is migration-disabled. The donor
does not execute there, and its original execution CPU remains recorded
in wake_cpu.
set_task_cpu() warns unconditionally for migration-disabled tasks, so a
subsequent proxy migration or the wakeup path returning the donor home
triggers a false positive: moving a blocked scheduling context does not
violate the migration-disabled execution context.
For example, creating a mutex owner on CPU1 and a migration-disabled
waiter on CPU0 can trigger the following warning:
proxy_migrate_repro: donor blocking on CPU0 with migration disabled
proxy_migrate_repro: donor moved from CPU0 to CPU1
WARNING: kernel/sched/core.c:3389 at set_task_cpu+0x1d3/0x280
...
Call Trace:
try_to_wake_up+0x43f/0x780
__mutex_unlock_slowpath+0x330/0x540
owner_fn+0x9f/0xc0 [proxy_migrate_repro]
...
proxy_migrate_repro: donor woke on CPU0, task_cpu=0
proxy_migrate_repro: completed
Exclude blocked proxy donors from the warning. The proxy wakeup path
restores an executable placement before clearing the blocked state.
📍 영향받는 시스템
Linux Kernel (sched/core 관련 버전)
⚔️ 공격 벡터
로컬 시스템에서 특정 스케줄링 상황을 유도하여 커널 경고 로그를 발생시킴 (DoS 또는 로그 오염 가능성)
🛡️ 대응 방법
리눅스 커널을 최신 패치가 적용된 버전으로 업데이트하여 프록시 기여자에 대한 경고 제외 로직을 적용해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전인지 배포판 보안 공지를 통해 확인하십시오.