CVE-2024-46839 in Linux
요약
\~에 의해 VulDB • 2026. 06. 11.
리눅스 커널에서 다음 취약점이 해결되었습니다:
workqueue: workqueue 워치독 터치(scalability)의 확장성 개선
약 2000개의 CPU를 갖춘 파워PC 시스템에서, stop_machine이 실행될 때(이 경우 CPU 핫플러그로 인해) workqueue 코드 내에서 하드 록업(hard lockups) 현상이 관찰되었습니다. 이는 다수의 CPU가 multi_cpu_stop에서 회전하며 touch_nmi_watchdog()을 호출하고, 이것이 결국 wq_watchdog_touch()를 호출하기 때문입니다. wq_watchdog_touch()는 전역 변수인 wq_watchdog_touched에 데이터를 쓰는데, 이 변수가 다른 중요한 workqueue 데이터와 같은 캐시라인(cacheline)에 위치하게 되어 작업 속도가 느려지고 그 결과 록업(lockups)으로 이어집니다.
다음과 같이 축약된 트레이스(trace)의 경우, worker_pool_idr가 핫 라인(hot line)에 포함되어 있어 록업이 항상 idr_find에서 발생했습니다.
watchdog: CPU 1125 self-detected hard LOCKUP @ idr_find Call Trace: get_work_pool __queue_work call_timer_fn run_timer_softirq __do_softirq do_softirq_own_stack irq_exit timer_interrupt decrementer_common_virt * interrupt: 900 (timer) at multi_cpu_stop multi_cpu_stop cpu_stopper_thread smpboot_thread_fn kthread
이 문제를 해결하기 위해, 마지막으로 터치가 기록된 시간이 워치독 임계값의 1/4을 초과하는 경우에만 wq_watchdog_touch()가 해당 캐시라인에 데이터를 쓰도록 수정했습니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.