CVE-2024-47744 in Linux
요약
\~에 의해 VulDB • 2026. 06. 09.
리눅스 커널에서 다음 취약점이 해결되었습니다:
KVM: 데드락을 피하기 위해 kvm_usage_count을 보호하는 전용 뮤택스를 사용함
잠금 체인과 SRCU 동기화로 인해 x86 플랫폼에서 잠재적인 데드락이 발생할 수 있으므로, kvm_usage_count을 감시하기 위해 전용 뮤택스를 사용합니다. 아래 lockdep 스플래트(splat)를 번역하면, CPU1 #6은 CPU0 #1을 기다리고, CPU0 #8은 CPU2 #3을 기다리며, CPU2 #7은 CPU1 #4를 기다리게 됩니다(라이터가 있는 경우 r/w 세마포어의 공정성으로 인해).
CPU0 CPU1 CPU2 1 lock(&kvm->slots_lock); 2 lock(&vcpu->mutex); 3 lock(&kvm->srcu); 4 lock(cpu_hotplug_lock); 5 lock(kvm_lock); 6 lock(&kvm->slots_lock); 7 lock(cpu_hotplug_lock); 8 sync(&kvm->srcu);
참고로, KVM x86에는 잠재적인 데드락이 더 있을 가능성이 높습니다. 예를 들어, kvm_lock 외부에서 cpu_hotplug_lock을 획득하는 동일한 패턴은 __kvmclock_cpufreq_notifier()에서도 존재할 것입니다:
cpuphp_cpufreq_online() | -> cpufreq_online() | -> cpufreq_gov_performance_limits() | -> __cpufreq_driver_target() | -> __target_index() | -> cpufreq_freq_transition_begin() | -> cpufreq_notify_transition() | -> ... __kvmclock_cpufreq_notifier()
하지만 실제로 이러한 데드락을 트리거하는 것은 관련된 의존성과 타이밍의 조합으로 인해 매우 드문 경우입니다. 예를 들어, cpufreq notifier는 상수 TSC가 없는 구형 CPU에서만 사용되며, VM이 실행 중인 동안 NX hugepage 완화 조치를 수정하는 것은 매우 흔하지 않으며, cpu_hotplug_lock에서 경합을 생성하기 위해 필요한
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.