🔍 CVE-2026-98928

0.0
CVSS Score
UNKNOWN
2026-10-23
2026-10-23 13:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 KVM arm64 구현에서 pkvm_init_features_from_host()가 호스트로부터 KVM_ARCH_FLAG_GUEST_HAS_SVE 플래그와 KVM_ARM_VCPU_SVE 비트를 각각 별도로 받아 일관성 없이 검사하는 문제가 해결되었습니다. 호스트가 비트 없이 플래그만 설정하면 sve_state가 NULL인 vCPU가 생성되어 월드 스위치 시 게스트 SVE 상태를 잘못된 메모리에서 로드할 수 있었습니다. 이에 플래그를 비트에서 파생하도록 수정하고 보호 모드의 사용되지 않는 복사 코드를 제거했습니다.

💡 쉬운 설명

가상 머신에 SVE라는 고급 연산 기능을 설정할 때 두 개의 설정값이 서로 맞지 않으면 잘못된 메모리를 읽을 수 있는 문제가 있었습니다. 이제 한 설정값에서 다른 설정값을 자동으로 결정하도록 바꿔 이 불일치를 막습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: Derive GUEST_HAS_SVE from the SVE feature bit at EL2 pkvm_init_features_from_host() takes KVM_ARCH_FLAG_GUEST_HAS_SVE and KVM_ARM_VCPU_SVE from the host separately, but pkvm_vcpu_init_sve() tests the bit while vcpu_has_sve() reads the flag. A host that sets the flag without the bit gets a vCPU with a NULL sve_state that the world switch loads the guest's SVE state from. Derive the flag from the bit, and drop the protected path's copy of the host's flag, which is dead code since protected VMs are not allowed SVE.

📍 영향받는 시스템

pKVM(보호 모드 KVM)을 사용하는 arm64 Linux 커널 (수정 커밋 적용 전 버전)

⚔️ 공격 벡터

악의적이거나 잘못 구성된 호스트가 SVE 플래그만 설정하여 NULL sve_state를 가진 vCPU를 만들고, 월드 스위치에서 잘못된 메모리 참조를 유발

🛡️ 대응 방법

커널을 패치된 버전(해당 커널 보안 업데이트)으로 업그레이드하고 재부팅

🔧 검증 코드

출력된 커널 버전을 배포판 보안 공지에서 이 CVE 수정이 포함된 빌드와 비교하며, 해당 버전 이상이면 패치가 적용된 것입니다.

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel