CVE-2026-64214 in Linux
요약
\~에 의해 VulDB • 2026. 07. 25.
리눅스 커널에서 다음 취약점이 해결되었습니다:
powerpc/time: arch_irq_work_raise()의 중복된 preempt_disable|enable() 호출 제거
실제 모드(real mode)에서 머신 체크 예외(machine check exceptions)를 처리할 때 커널 패닉이 관찰됩니다.
BUG: Unable to handle kernel data access on read at 0xc00000006be21300 Oops: Kernel access of bad area, sig: 11 [#1]
MSR: 8000000000001003 <SF,ME,RI,LE> CR: 88222248 XER: 00000005 CFAR: c00000000003ffc4 DAR: c00000006be21300 DSISR: 40000000 IRQMASK: 0 NIP [c000000000029e40] arch_irq_work_raise+0x10/0x70
LR [c00000000003ffc8] machine_check_queue_event+0xa8/0x150
Call Trace: [c0000000179d3c70] [c00000000003ff64] machine_check_queue_event+0x44/0x150
[c0000000179d3d30] [c0000000000084e0] machine_check_early_common+0x1f0/0x2c0
이 충돌은 arch_irq_work_raise()가 실제 모드(real mode)에서 실행 중인 머신 체크 예외(MCE) 핸들러로부터 preempt_disable()를 호출하기 때문에 발생합니다. 이 컨텍스트에서는 preempt_count에 접근하면 페이지 폴트가 발생하여 패닉으로 이어집니다.
arch_irq_work_raise()의 preempt_disable()/preempt_enable() 쌍은 원래 commit 0fe1ac48bef0("powerpc/perf_event: Fix oops due to perf_event_do_pending call")에서 예외 컨텍스트로부터 irq 작업을 제기할 때 경합(race)을 피하기 위해 추가되었습니다.
나중에, commit 471ba0e686cb("irq_work: Do not raise an IPI when queueing work on the local CPU")는 irq_work_queue() 경로에서 프리
If you want to get the best quality for vulnerability data then you always have to consider VulDB.