🔍 CVE-2025-22013

7.3
CVSS Score
HIGH
2025-04-08
2026-10-15 22:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 KVM arm64 구현에서 호스트의 FPSIMD/SVE/SME 상태를 처리하는 방식에 결함이 발견되었습니다. 이로 인해 호스트의 SVE 상태가 예기치 않게 폐기되거나 ptrace 동작 시 데이터가 손실되는 등의 문제가 발생할 수 있습니다.

💡 쉬운 설명

가상 머신을 사용할 때 컴퓨터의 중요한 계산용 데이터(SVE 등)가 제대로 저장되지 않고 사라지는 버그입니다. 이로 인해 프로그램이 갑자기 종료되거나 데이터가 꼬이는 문제가 생길 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: Unconditionally save+flush host FPSIMD/SVE/SME state There are several problems with the way hyp code lazily saves the host's FPSIMD/SVE state, including: * Host SVE being discarded unexpectedly due to inconsistent configuration of TIF_SVE and CPACR_ELx.ZEN. This has been seen to result in QEMU crashes where SVE is used by memmove(), as reported by Eric Auger: https://issues.redhat.com/browse/RHEL-68997 * Host SVE state is discarded *after* modification by ptrace, which was an unintentional ptrace ABI change introduced with lazy discarding of SVE state. * The host FPMR value can be discarded when running a non-protected VM, where FPMR support is not exposed to a VM, and that VM uses FPSIMD/SVE. In these cases the hyp code does not save the host's FPMR before unbinding the host's FPSIMD/SVE/SME state, leaving a stale value in memory. Avoid these by eagerly saving and "flushing" the host's FPSIMD/SVE/SME state when loading a vCPU such that KVM does not need to save any of the host's FPSIMD/SVE/SME state. For clarity, fpsimd_kvm_prepare() is removed and the necessary call to fpsimd_save_and_flush_cpu_state() is placed in kvm_arch_vcpu_load_fp(). As 'fpsimd_state' and 'fpmr_ptr' should not be used, they are set to NULL; all uses of these will be removed in subsequent patches. Historical problems go back at least as far as v5.17, e.g. erroneous assumptions about TIF_SVE being clear in commit: 8383741ab2e773a9 ("KVM: arm64: Get rid of host SVE tracking/saving") ... and so this eager save+flush probably needs to be backported to ALL stable trees.

📍 영향받는 시스템

Linux kernel v5.17 이상을 사용하는 arm64 아키텍처 시스템

⚔️ 공격 벡터

직접적인 원격 공격보다는 시스템 안정성을 해치거나 ptrace를 통한 디버깅 시 데이터 무결성을 깨뜨리는 방식

🛡️ 대응 방법

커널을 최신 보안 패치가 적용된 버전으로 업데이트하거나 해당 수정 사항이 포함된 안정화 버전으로 백포트 적용

🔧 검증 코드

출력된 커널 버전이 취약점이 해결된 최신 패치 버전인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel