🇰🇷 한글 설명
Linux 커널의 x86 FPU 처리 과정에서 시그널 전달 시 XFD 상태를 적절히 동기화하지 못하는 취약점입니다. AMX 기능을 사용하는 작업과 사용하지 않는 작업이 교차 실행될 때 CPU의 XFD MSR 상태와 커널의 fpstate 정보가 불일치하여 경고(Warning)가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터의 특수 계산 기능을 사용하는 프로그램들이 서로 번갈아 실행될 때, CPU의 상태 정보가 서로 맞지 않아 시스템에 오류 경고가 발생하는 문제입니다. 이로 인해 시스템의 안정성이 저해될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
x86/fpu: Ensure XFD state on signal delivery
Sean reported [1] the following splat when running KVM tests:
WARNING: CPU: 232 PID: 15391 at xfd_validate_state+0x65/0x70
Call Trace:
<TASK>
fpu__clear_user_states+0x9c/0x100
arch_do_signal_or_restart+0x142/0x210
exit_to_user_mode_loop+0x55/0x100
do_syscall_64+0x205/0x2c0
entry_SYSCALL_64_after_hwframe+0x4b/0x53
Chao further identified [2] a reproducible scenario involving signal
delivery: a non-AMX task is preempted by an AMX-enabled task which
modifies the XFD MSR.
When the non-AMX task resumes and reloads XSTATE with init values,
a warning is triggered due to a mismatch between fpstate::xfd and the
CPU's current XFD state. fpu__clear_user_states() does not currently
re-synchronize the XFD state after such preemption.
Invoke xfd_update_state() which detects and corrects the mismatch if
there is a dynamic feature.
This also benefits the sigreturn path, as fpu__restore_sig() may call
fpu__clear_user_states() when the sigframe is inaccessible.
[ dhansen: minor changelog munging ]
📍 영향받는 시스템
AMX(Advanced Matrix Extensions)를 지원하는 x86 아키텍처 기반의 Linux 커널
⚔️ 공격 벡터
특정 시그널 전달 및 작업 전환(Preemption)을 유도하여 커널 경고 및 상태 불일치 유발
🛡️ 대응 방법
XFD 상태를 동기화하는 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인합니다.